模拟题目:
设置配置环境: [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: {}
添加如下行
应用文件
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