apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: fluentd-gcp-v2.0.10 namespace: kube-system labels: k8s-app: fluentd-gcp kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile version: v2.0.10 spec: updateStrategy: type: RollingUpdate template: metadata: labels: k8s-app: fluentd-gcp kubernetes.io/cluster-service: "true" version: v2.0.10 # This annotation ensures that fluentd does not get evicted if the node # supports critical pod annotation based priority scheme. # Note that this does not guarantee admission on the nodes (#40573). annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: serviceAccountName: fluentd-gcp dnsPolicy: Default containers: - name: fluentd-gcp image: gcr.io/google-containers/fluentd-gcp:2.0.10 env: - name: FLUENTD_ARGS value: --no-supervisor -q resources: limits: memory: 300Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: /var/log - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true - name: libsystemddir mountPath: /host/lib readOnly: true - name: config-volume mountPath: /etc/fluent/config.d # Liveness probe is aimed to help in situarions where fluentd # silently hangs for no apparent reasons until manual restart. # The idea of this probe is that if fluentd is not queueing or # flushing chunks for 5 minutes, something is not right. If # you want to change the fluentd configuration, reducing amount of # logs fluentd collects, consider changing the threshold or turning # liveness probe off completely. livenessProbe: initialDelaySeconds: 600 periodSeconds: 60 exec: command: - '/bin/sh' - '-c' - > LIVENESS_THRESHOLD_SECONDS=${LIVENESS_THRESHOLD_SECONDS:-300}; STUCK_THRESHOLD_SECONDS=${LIVENESS_THRESHOLD_SECONDS:-900}; if [ ! -e /var/log/fluentd-buffers ]; then exit 1; fi; LAST_MODIFIED_DATE=`stat /var/log/fluentd-buffers | grep Modify | sed -r "s/Modify: (.*)/\1/"`; LAST_MODIFIED_TIMESTAMP=`date -d "$LAST_MODIFIED_DATE" +%s`; if [ `date +%s` -gt `expr $LAST_MODIFIED_TIMESTAMP + $STUCK_THRESHOLD_SECONDS` ]; then rm -rf /var/log/fluentd-buffers; exit 1; fi; if [ `date +%s` -gt `expr $LAST_MODIFIED_TIMESTAMP + $LIVENESS_THRESHOLD_SECONDS` ]; then exit 1; fi; # BEGIN_PROMETHEUS_TO_SD - name: prometheus-to-sd-exporter image: gcr.io/google-containers/prometheus-to-sd:v0.2.2 command: - /monitor - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons - --api-override={{ prometheus_to_sd_endpoint }} - --source=fluentd:http://localhost:31337?whitelisted=stackdriver_successful_requests_count,stackdriver_failed_requests_count,stackdriver_ingested_entries_count,stackdriver_dropped_entries_count - --pod-id=$(POD_NAME) - --namespace-id=$(POD_NAMESPACE) env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace # END_PROMETHEUS_TO_SD nodeSelector: beta.kubernetes.io/fluentd-ds-ready: "true" tolerations: - key: "node.alpha.kubernetes.io/ismaster" effect: "NoSchedule" - operator: "Exists" effect: "NoExecute" - operator: "Exists" effect: "NoSchedule" terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers - name: libsystemddir hostPath: path: /usr/lib64 - name: config-volume configMap: name: fluentd-gcp-config-v1.2.3