From 5d3fd7c9b97fc7ab3eba4daf71169a1359590a75 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Sat, 4 Nov 2017 15:49:09 +0100 Subject: Leaves room for log collectors, now that I like this one ... although it will never be reliable in clusters with a lot of scheduling going on --- logs-streaming/logs-kube-kafka-raw.yml | 73 ++++++++++++++++++++++++++++++++ logs-streaming/logs-kube-kafka.yml | 68 ------------------------------ logs-streaming/test/logs-aggregated.yml | 75 --------------------------------- logs-streaming/test/logs-raw.yml | 75 +++++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+), 143 deletions(-) create mode 100644 logs-streaming/logs-kube-kafka-raw.yml delete mode 100644 logs-streaming/logs-kube-kafka.yml delete mode 100644 logs-streaming/test/logs-aggregated.yml create mode 100644 logs-streaming/test/logs-raw.yml diff --git a/logs-streaming/logs-kube-kafka-raw.yml b/logs-streaming/logs-kube-kafka-raw.yml new file mode 100644 index 0000000..de56a8b --- /dev/null +++ b/logs-streaming/logs-kube-kafka-raw.yml @@ -0,0 +1,73 @@ +apiVersion: apps/v1beta2 +kind: DaemonSet +metadata: + name: logs-kafka-raw + namespace: kafka +spec: + selector: + matchLabels: + k8s-app: logs-kafka + log-wrapping: none + container-delimiters: tail + version: v1 + kubernetes.io/cluster-service: "true" + template: + metadata: + labels: + k8s-app: logs-kafka + log-wrapping: none + container-delimiters: tail + version: v1 + kubernetes.io/cluster-service: "true" + spec: + containers: + - name: kafkacat + image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef + command: + - sh + - -ec + - > + find /var/log/containers/ -maxdepth 1 -name *.log | tee /tmp/start-list; + cd /var/log/containers/; + tail + -n 0 + --follow=name + *.log + | + kafkacat + -b kafka-0.broker.kafka.svc.cluster.local:9092,kafka-1.broker.kafka.svc.cluster.local:9092,kafka-2.broker.kafka.svc.cluster.local:9092 + -t ops-kube-logs-raw-001 + -P + -z snappy + -v + -d broker,topic + livenessProbe: + exec: + command: + - /bin/sh + - -c + - find /var/log/containers/ -maxdepth 1 -name *.log | diff - /tmp/start-list + failureThreshold: 1 + initialDelaySeconds: 25 + periodSeconds: 5 + resources: + limits: + memory: 100Mi + requests: + cpu: 100m + memory: 100Mi + volumeMounts: + - name: varlog + mountPath: /var/log + readOnly: true + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + terminationGracePeriodSeconds: 10 + volumes: + - name: varlog + hostPath: + path: /var/log + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers diff --git a/logs-streaming/logs-kube-kafka.yml b/logs-streaming/logs-kube-kafka.yml deleted file mode 100644 index 56fbeea..0000000 --- a/logs-streaming/logs-kube-kafka.yml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: apps/v1beta2 -kind: DaemonSet -metadata: - name: logs-kafka - namespace: kafka -spec: - selector: - matchLabels: - k8s-app: logs-kafka - version: v1 - kubernetes.io/cluster-service: "true" - template: - metadata: - labels: - k8s-app: logs-kafka - version: v1 - kubernetes.io/cluster-service: "true" - spec: - containers: - - name: kafkacat - image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef - command: - - sh - - -ec - - > - find /var/log/containers/ -maxdepth 1 -name *.log | tee /tmp/start-list; - cd /var/log/containers/; - tail - -n 0 - --follow=name - *.log - | - kafkacat - -b kafka-0.broker.kafka.svc.cluster.local:9092,kafka-1.broker.kafka.svc.cluster.local:9092,kafka-2.broker.kafka.svc.cluster.local:9092 - -t ops-kube-logs-raw-001 - -P - -z snappy - -v - -d broker,topic - livenessProbe: - exec: - command: - - /bin/sh - - -c - - find /var/log/containers/ -maxdepth 1 -name *.log | diff - /tmp/start-list - initialDelaySeconds: 15 - periodSeconds: 5 - resources: - limits: - memory: 100Mi - requests: - cpu: 100m - memory: 100Mi - volumeMounts: - - name: varlog - mountPath: /var/log - readOnly: true - - name: varlibdockercontainers - mountPath: /var/lib/docker/containers - readOnly: true - terminationGracePeriodSeconds: 10 - volumes: - - name: varlog - hostPath: - path: /var/log - - name: varlibdockercontainers - hostPath: - path: /var/lib/docker/containers diff --git a/logs-streaming/test/logs-aggregated.yml b/logs-streaming/test/logs-aggregated.yml deleted file mode 100644 index 4da336c..0000000 --- a/logs-streaming/test/logs-aggregated.yml +++ /dev/null @@ -1,75 +0,0 @@ ---- -kind: ConfigMap -metadata: - name: test-logs-aggregated - namespace: test-kafka -apiVersion: v1 -data: - - setup.sh: |- - touch /tmp/testlog - - tail -f /tmp/testlog - - test.sh: |- - exec >> /tmp/testlog - exec 2>&1 - - echo "" - echo "{\"#---\":\"$(date -u --iso-8601='ns')\"}" - kafkacat -b $BOOTSTRAP -C -t $TOPIC -f '\n%t@%p [%o] %k: %s\n' -o -10 -e - - exit 0 - - quit-on-nonzero-exit.sh: |- - exit 0 - ---- -apiVersion: apps/v1beta2 -kind: Deployment -metadata: - name: test-logs-aggregated - namespace: test-kafka -spec: - replicas: 1 - selector: - matchLabels: - test-target: logs-streaming - test-type: readiness - template: - metadata: - labels: - test-target: logs-streaming - test-type: readiness - spec: - containers: - - name: testcase - image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef - env: - - name: BOOTSTRAP - value: kafka-0.broker.kafka.svc.cluster.local:9092,kafka-1.broker.kafka.svc.cluster.local:9092,kafka-2.broker.kafka.svc.cluster.local:9092 - - name: TOPIC - value: ops-kube-logs-raw-001 - command: - - /bin/bash - - -e - - /test/setup.sh - readinessProbe: - exec: - command: - - /bin/bash - - -e - - /test/test.sh - livenessProbe: - exec: - command: - - /bin/bash - - -e - - /test/quit-on-nonzero-exit.sh - volumeMounts: - - name: config - mountPath: /test - volumes: - - name: config - configMap: - name: test-logs-aggregated diff --git a/logs-streaming/test/logs-raw.yml b/logs-streaming/test/logs-raw.yml new file mode 100644 index 0000000..dbe9dc1 --- /dev/null +++ b/logs-streaming/test/logs-raw.yml @@ -0,0 +1,75 @@ +--- +kind: ConfigMap +metadata: + name: logs-raw + namespace: test-kafka +apiVersion: v1 +data: + + setup.sh: |- + touch /tmp/testlog + + tail -f /tmp/testlog + + test.sh: |- + exec >> /tmp/testlog + exec 2>&1 + + echo "" + echo "{\"#---\":\"$(date -u --iso-8601='ns')\"}" + kafkacat -b $BOOTSTRAP -C -t $TOPIC -f '\n%t@%p [%o] %k: %s\n' -o -10 -e + + exit 0 + + quit-on-nonzero-exit.sh: |- + exit 0 + +--- +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: logs-raw + namespace: test-kafka +spec: + replicas: 1 + selector: + matchLabels: + test-target: logs-streaming-raw + test-type: readiness + template: + metadata: + labels: + test-target: logs-streaming-raw + test-type: readiness + spec: + containers: + - name: testcase + image: solsson/kafkacat@sha256:ebebf47061300b14a4b4c2e1e4303ab29f65e4b95d34af1b14bb8f7ec6da7cef + env: + - name: BOOTSTRAP + value: kafka-0.broker.kafka.svc.cluster.local:9092,kafka-1.broker.kafka.svc.cluster.local:9092,kafka-2.broker.kafka.svc.cluster.local:9092 + - name: TOPIC + value: ops-kube-logs-raw-001 + command: + - /bin/bash + - -e + - /test/setup.sh + readinessProbe: + exec: + command: + - /bin/bash + - -e + - /test/test.sh + livenessProbe: + exec: + command: + - /bin/bash + - -e + - /test/quit-on-nonzero-exit.sh + volumeMounts: + - name: config + mountPath: /test + volumes: + - name: config + configMap: + name: logs-raw -- cgit v1.2.3