模拟题目:

设置配置环境: [candidate@node-1] $ kubectl config use-context k8s

Context

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

Task

使用busybox Image来将名为sidecar的sidecar容器添加到现有的Pod 11-factor-app中。 新的sidecar容器必须运行以下命令: /bin/sh -c tail -n+1 -f /var/log/11-factor-app.log 使用挂载在/var/log的Volume,使日志文件11-factor-app.log可用于sidecar 容器。 除了添加所需要的volume mount以外,请勿更改现有容器的规格。


参考:

概念 --> 集群管理 --> 日志架构 https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/


解答:

考试的时候务必记住切换集群, 注意集群名称 kubectl config use-context k8s

导出pod文件并备份

kubectl get pod 11-factor-app -o yaml > varlog.yaml
cp varlog.yaml varlog-bak.yaml

删除原pod

kubectl delete pod 11-factor-app
kubectl get pod 11-factor-app

编辑文件

vim varlog.yaml
    - name: varlog
      mountPath: /var/log

  - name: count-log-2
    image: busybox:1.28
    args: [/bin/sh, -c, 'tail -n+1 -F /var/log/2.log']
    volumeMounts:
    - name: varlog
      mountPath: /var/log

  #volumes:
  - name: varlog
    emptyDir: {}

添加如下行 file

应用文件

kubectl apply -f 11-factor-app.yaml

检查:
kubectl logs 11-factor-app sidecar
kubectl  exec 11-factor-app -c sidecar -- tail -f /var/log/11-factor-app.log
kubectl  exec 11-factor-app -c count-- tail -f /var/log/11-factor-app.log

file file file