# From https://github.com/fluent/fluentd-kubernetes-daemonset/blob/94221c9b860ff8a47b6b625fdb6fc3fb05f36e04/fluentd-daemonset-elasticsearch-rbac.yaml --- apiVersion: v1 kind: ServiceAccount metadata: name: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: fluentd rules: - apiGroups: - "" resources: - pods - namespaces verbs: - get - list - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: fluentd roleRef: kind: ClusterRole name: fluentd apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: fluentd namespace: kube-system --- apiVersion: apps/v1 kind: DaemonSet metadata: name: fluentd namespace: kube-system labels: k8s-app: fluentd-logging version: v1 spec: selector: matchLabels: k8s-app: fluentd-logging version: v1 template: metadata: labels: k8s-app: fluentd-logging version: v1 spec: serviceAccount: fluentd serviceAccountName: fluentd tolerations: - key: node-role.kubernetes.io/master effect: NoSchedule containers: - name: fluentd image: fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearch env: - name: FLUENT_ELASTICSEARCH_HOST # value: "elasticsearch-logging" value: elasticsearch.default - name: FLUENT_ELASTICSEARCH_PORT value: "9200" - name: FLUENT_ELASTICSEARCH_SCHEME value: "http" # Option to configure elasticsearch plugin with self signed certs # ================================================================ - name: FLUENT_ELASTICSEARCH_SSL_VERIFY value: "true" # Option to configure elasticsearch plugin with tls # ================================================================ - name: FLUENT_ELASTICSEARCH_SSL_VERSION value: "TLSv1_2" # X-Pack Authentication # ===================== - name: FLUENT_ELASTICSEARCH_USER value: "elastic" - name: FLUENT_ELASTICSEARCH_PASSWORD value: "changeme" - name: FLUENTD_SYSTEMD_CONF value: disable - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: "FLUENT_CONTAINER_TAIL_PARSER_TYPE" value: "${FLUENT_CONTAINER_TAIL_PARSER_TYPE-json_in_json}" - name: FLUENT_CONTAINER_TAIL_EXCLUDE_PATH value: /var/log/containers/fluent* resources: limits: memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: /var/log # When actual pod logs in /var/lib/docker/containers, the following lines should be used. - name: dockercontainerlogdirectory mountPath: /var/lib/docker/containers readOnly: true # When actual pod logs in /var/log/pods, the following lines should be used. # - name: dockercontainerlogdirectory # mountPath: /var/log/pods # readOnly: true terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: /var/log # When actual pod logs in /var/lib/docker/containers, the following lines should be used. - name: dockercontainerlogdirectory hostPath: path: /var/lib/docker/containers # When actual pod logs in /var/log/pods, the following lines should be used. # - name: dockercontainerlogdirectory # hostPath: # path: /var/log/pods