10.Sidecar代理:日志架构

发布时间 2024-01-12 13:05:08作者: 杨梅冲
官方文档:https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/

题目:Sidecar代理
设置配置环境kubectl config use-context k8s

将一个现有的 Pod 集成到 Kubernetes 的内置日志记录体系结构中(例如 kubectl logs)。添加 streaming sidecar 容器是实现此要求的一种好方法。

使用busybox Image来将名为sidecar的sidecar容器添加到现有的Pod 11-factor-app上,新的sidecar容器必须运行以下命令:
/bin/sh -c tail -n+1 -f /var/log/11-factor-app.log
使用volume挂载/var/log/目录,确保sidecar能访问/var/log/11-factor-app.log文件
解答:
# 1.切换环境
kubectl config use-context k8s

# 2.编写yaml
[root@master2 sidecar]# cat side.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: 11-factor-app
spec:
  containers:
  - name: count
    image: docker.io/library/busybox:latest
    imagePullPolicy: IfNotPresent
    args:
    - /bin/sh
    - -c
    - >
      i=0;
      while true;
      do
        echo "$i: $(date)" >> /var/log/11-factor-app.log;
        i=$((i+1));
        sleep 1;
      done
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  - name: sidecar
    image: docker.io/library/busybox:latest
    imagePullPolicy: IfNotPresent
    args: [/bin/sh, -c, 'tail -n+1 -f /var/log/11-factor-app.log']
    volumeMounts:
    - name: varlog
      mountPath: /var/log

  volumes:
    - name: varlog
      emptyDir: {}

# 3.运行检测
删除之前的pod 
kubectl delete pod 11-factor-app
[root@master2 sidecar]# kubectl apply -f side.yaml 
pod/11-factor-app created

# 查看日志
kubectl logs 11-factor-app -c sidecar