题目描述
- 设置配置环境 kubectl config use-context k8s
- 在不更改其现有容器的情况下,需要将一个现有的 pod 集成到 kubernetes 的内置日志记录 体系结构中(例如 kubectl logs)。添加 streamimg sidecar 容器是实现此要求的一种好方法。
- 将一个 busybox sidecar 容器添加到现有的 pod legacy-app。新的 sidecar 容器必须运行一下命令:
/bin/sh -c tail -n+1 -f /var/log/legacy-app.log
- 使用名为 logs 的 volume mount 来让文件/var/log/legacy-app.log 可用于 sidecar 容器。
- 不要更改现有容器。不要修改日志文件的路径,两个容器必须通过/var/log/legacy-app.log 来访问该文件
根据题目完成预置条件
- 模拟legacy-app pod配置文件
cat > /cka/redis.yaml <<EOF
apiVersion: v1
kind: Pod
metadata:
name: legacy-app
spec:
containers:
- name: redis
image: redis
EOF
- 创建
kubectl apply -f /cka/redis.yaml
解析
- 复制 legacy-app pod 的配置文件
kubectl get pod legacy-app -o yaml > /cka/legacy-app.yaml
-
修改 legacy-app 的配置
-
添加 volumes
-
添加 sidecar container
-
现有 container 添加 volumeMounts
-
-
删除原 legacy-app pod
kubectl delete pod legacy-app
- 创建新的 legacy-app pod
kubectl apply -f /cka/legacy-app.yaml
- 验证结果
kubectl logs legacy-app sidecar
kubectl logs legacy-app redis