模拟题目

设置配置环境:

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: {}

sidecar-log-0

应用文件

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

sidecar-log-1
sidecar-log-2
sidecar-log-3