16. cka题目-sidecar

712 阅读1分钟

题目描述

  • 设置配置环境 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

image.png

解析

  • 复制 legacy-app pod 的配置文件
kubectl get pod legacy-app -o yaml > /cka/legacy-app.yaml
  • 修改 legacy-app 的配置

    • 添加 volumes

      image.png

    • 添加 sidecar container

      image.png

    • 现有 container 添加 volumeMounts

      image.png

  • 删除原 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

image.png

参考

日志架构