From 843e542937eee16ff5447b74b5654c40cfd89342 Mon Sep 17 00:00:00 2001 From: Jawad Seddar Date: Thu, 12 Nov 2020 16:37:35 +0100 Subject: [PATCH] Log collection example for sidecar containers (#64) * Log collection example for sidecar containers * Add service and update readme * Update 16-sidecar-containers/README.md Co-authored-by: Matthieu Dumont <5095856+Jerska@users.noreply.github.com> --- 16-sidecar-containers/01-sidecar.yml | 56 +++++++++++++++++++++++----- 16-sidecar-containers/README.md | 12 ++++-- 2 files changed, 56 insertions(+), 12 deletions(-) diff --git a/16-sidecar-containers/01-sidecar.yml b/16-sidecar-containers/01-sidecar.yml index 11c0aff..97f8281 100644 --- a/16-sidecar-containers/01-sidecar.yml +++ b/16-sidecar-containers/01-sidecar.yml @@ -3,20 +3,58 @@ apiVersion: v1 kind: Pod metadata: name: two-containers + labels: + app: sidecar-container spec: volumes: - - name: shared-data + - name: shared-logs emptyDir: {} + - name: fluentd-config + configMap: + name: fluentd containers: - name: nginx image: nginx + ports: + - containerPort: 80 volumeMounts: - - name: shared-data - mountPath: /usr/share/nginx/html - - name: debian - image: debian + - name: shared-logs + mountPath: /var/log/nginx + - name: fluentd + image: fluent/fluentd:v1.11-1 volumeMounts: - - name: shared-data - mountPath: /pod-data - command: ["/bin/sh"] - args: ["-c", "echo Hello from the debian container > /pod-data/index.html"] + - name: shared-logs + mountPath: /logs + - name: fluentd-config + mountPath: /fluentd/etc +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: fluentd +data: + fluent.conf: | + + @type tail + path /logs/* + pos_file /tmp/fluentd-nginx-pos.log + tag nginx + + @type nginx + + + + + @type stdout + +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx +spec: + ports: + - port: 80 + targetPort: 80 + selector: + app: sidecar-container diff --git a/16-sidecar-containers/README.md b/16-sidecar-containers/README.md index df63880..691dcf0 100644 --- a/16-sidecar-containers/README.md +++ b/16-sidecar-containers/README.md @@ -14,7 +14,7 @@ spec: - name: container1 image: nginx - name: container2 - image: busybox + image: fluentd ``` Here we have 2 containers: `container1` and `container2`. @@ -33,14 +33,20 @@ Istio, the service mesh tool, installs a sidecar container to do its job: https: ## Exercices -Review and apply the file [01-sidecar.yml](01-sidecar.yml). Connect to the `nginx` container and look at the file system in `/usr/share/nginx/html`. +Review and apply the file [01-sidecar.yml](01-sidecar.yml). + +Connect to the `nginx` container (`kubectl exec -it two-containers -c nginx -- /bin/sh`) and look at the file system in `/var/log/nginx`. + +Do the same for the `fluentd` container and this time look in `/logs`. What do you see? + +Tail the logs from the fluentd pod (`kubectl logs -f two-containers -c fluentd`) and in another terminal window, send requests to the nginx service with a `curl` from a separate pod (or nginx's pod itself). What do you see? How do you explain it? This exercice is taken from the [official Kubernetes documentation](https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/#creating-a-pod-that-runs-two-containers). ## Clean up ```sh -kubectl delete service,deployment,pod --all +kubectl delete service,deployment,pod,configmap --all ``` ## Links