CKA-2026-SideCar

张开发
2026/6/8 4:12:15 15 分钟阅读
CKA-2026-SideCar
Context您需要将一个传统应用程序集成到 Kubernetes 的日志架构(例如 kubectl logs)中。实现这个要求的通常方法是添加一个流式传输并置容器。Task更新现有的synergy-leveragerDeployment将使用busybox:stable镜像且名为sidecar的并置容器添加到现有的 Pod 。新的并置容器必须运行以下命令/bin/sh -c tail -n1 -f /var/log/legacy-app.log使用挂载在/var/log的 Volume使日志文件legacy-app.log可供并置容器使用。除了添加所需的卷挂载之外请勿修改现有容器的规范。解答:步骤1导出yamlkubectl get deployment synergy-leverager -o yamlsidecar.yaml步骤2.编辑 yamlvim sidecar.yamlspec: containers: # 原有容器count - args: - /bin/sh - -c - | i0; while true; do echo $(date) INFO $i /var/log/legacy-app.log; # 每秒写入一条带时间戳的日志到 /var/log/legacy-app.log i$((i1)); sleep 1; done image: alpine # 使用轻量级 Alpine Linux 镜像 imagePullPolicy: Always name: count resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File # 已有容器 增加 3 行以下为新增的 volumeMounts 部分 volumeMounts: # 挂载共享卷 - name: varlog # 引用下面定义的 volumes 中的 varlog 卷 mountPath: /var/log # 将卷挂载到容器的 /var/log 目录使日志文件可被其他容器访问 # 新增 sidecar 容器 # 新容器 增加 6 行 - name: sidecar image: busybox:stable # 使用 BusyBox 镜像内含 tail 命令 args: [/bin/sh, -c, tail -n1 -f /var/log/legacy-app.log] # 持续跟踪日志文件并输出到标准输出 volumeMounts: - name: varlog # 挂载同一个共享卷 mountPath: /var/log # 使 sidecar 能读取 count 容器写入的日志文件 # 共享卷定义 # 增加 3 行 volumes: - name: varlog # 卷名称与 volumeMounts 中的 name 对应 emptyDir: {} # 临时空目录Pod 生命周期内存在用于容器间共享文件步骤3.应用更新kubectl apply -f sidecar.yaml提示 configured,表示配置成功 5 检查检查新 Pod 是否 Runningkubectl get pod | grep synergy-leverager显示 2/2 Running

更多文章