Due to updates in Fluent v0.14, the buffers directory modified date is no longer updated when files inside the directory are changed. Therefore we must find the most recent modified date recursively to fix liveness probe.
118 lines
4.2 KiB
YAML
118 lines
4.2 KiB
YAML
apiVersion: extensions/v1beta1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: fluentd-gcp-v3.0.0
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: fluentd-gcp
|
|
kubernetes.io/cluster-service: "true"
|
|
addonmanager.kubernetes.io/mode: Reconcile
|
|
version: v3.0.0
|
|
spec:
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
k8s-app: fluentd-gcp
|
|
kubernetes.io/cluster-service: "true"
|
|
version: v3.0.0
|
|
# 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:
|
|
priorityClassName: system-node-critical
|
|
serviceAccountName: fluentd-gcp
|
|
dnsPolicy: Default
|
|
containers:
|
|
- name: fluentd-gcp
|
|
image: gcr.io/stackdriver-agents/stackdriver-logging-agent:{{ fluentd_gcp_version }}
|
|
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/google-fluentd/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;
|
|
touch -d "${STUCK_THRESHOLD_SECONDS} seconds ago" /tmp/marker-stuck;
|
|
if [[ -z "$(find /var/log/fluentd-buffers -type f -newer /tmp/marker-stuck -print -quit)" ]];
|
|
then
|
|
rm -rf /var/log/fluentd-buffers;
|
|
exit 1;
|
|
fi;
|
|
touch -d "${LIVENESS_THRESHOLD_SECONDS} seconds ago" /tmp/marker-liveness;
|
|
if [[ -z "$(find /var/log/fluentd-buffers -type f -newer /tmp/marker-liveness -print -quit)" ]];
|
|
then
|
|
exit 1;
|
|
fi;
|
|
# BEGIN_PROMETHEUS_TO_SD
|
|
- name: prometheus-to-sd-exporter
|
|
image: k8s.gcr.io/prometheus-to-sd:v0.2.4
|
|
command:
|
|
- /monitor
|
|
- --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons
|
|
- --api-override={{ prometheus_to_sd_endpoint }}
|
|
- --source=fluentd:http://localhost:24231?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.4
|