# please keep this file synchronized with cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml apiVersion: v1 kind: Pod metadata: name: fluentd-cloud-logging namespace: kube-system labels: k8s-app: fluentd-logging spec: dnsPolicy: Default containers: - name: fluentd-cloud-logging image: gcr.io/google_containers/fluentd-gcp:1.32 # If fluentd consumes its own logs, the following situation may happen: # fluentd fails to send a chunk to the server => writes it to the log => # tries to send this message to the server => fails to send a chunk and so on. # Writing to a file, which is not exported to the back-end prevents it. # It also allows to increase the fluentd verbosity by default. command: - '/bin/sh' - '-c' - '/run.sh $FLUENTD_ARGS 2>&1 >>/var/log/fluentd.log' resources: limits: memory: 200Mi requests: # Any change here should be accompanied by a proportional change in CPU # requests of other per-node add-ons (e.g. kube-proxy). cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: /var/log - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true - name: libsystemddir mountPath: /host/lib # 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:-600}; 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 + $LIVENESS_THRESHOLD_SECONDS` ]; then exit 1; fi; terminationGracePeriodSeconds: 30 volumes: - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers - name: libsystemddir hostPath: path: /usr/lib64