2024 CKA 题库 | 13、使用 sidecar 代理容器日志

不等更新题库

文章目录

    • 13、使用 sidecar 代理容器日志
      • 题目:
      • 考点:
      • 参考链接:
      • 解答:
        • 更换 context
        • 获取 pod yaml
        • 修改 yaml
        • 创建 pod
      • 检查

13、使用 sidecar 代理容器日志

题目:

设置配置环境:
[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 以外,请勿更改现有容器的规格。

考题翻译成白话,就是:
添加一个名为 sidecar 的边车容器(使用 busybox 镜像),加到已有的 pod 11-factor-app 中。 确保 sidecar 容器能够输出 /var/log/11-factor-app.log 的信息。
使用 volume 挂载 /var/log 目录,确保 sidecar 能访问 11-factor-app.log 文件

考点:

pod 两个容器共享存储卷

参考链接:

(需要复制网页内容)
依次点击 Concepts → Cluster Administration → Logging Architecture (看不懂英文的,可右上角翻译成中文)
https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/

解答:

更换 context
$ kubectl config use-context k8s
获取 pod yaml
$ kubectl get pod 11-factor-app -o yaml > varlog.yaml
# 备份  yaml 文件,防止改错了,回退。
$ cp varlog.yaml varlog-bak.yaml
修改 yaml
spec: 
。。。。。。
    volumeMounts:     #在原配置文件,灰色的这段后面添加 
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-4l6w8 
      readOnly: true
    - name: varlog       #新加内容 
      mountPath: /var/log     #新加内容
  - name: sidecar       #新加内容,注意    name  别写错了 
    image: busybox       #新加内容 
    args: [/bin/sh, -c, 'tail -n+1 -f /var/log/11-factor-app.log']     #新加内容,注意    文件名    别写错了。另外是用逗号分隔的,而题目里是空格。 
    volumeMounts:     #新加内容
    - name: varlog     #新加内容 
      mountPath: /var/log     #新加内容
  dnsPolicy: ClusterFirst 
  enableServiceLinks: true
。。。。。。
  volumes:     #在原配置文件,灰色的这段后面添加。 
  - name: kube-api-access-kcjc2
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken: 
          expirationSeconds: 3607 
          path: token
      - configMap: 
        items:
        - key: ca.crt 
          path: ca.crt
        name: kube-root-ca.crt 
      - downwardAPI:
        items:
        - fieldRef: apiVersion: v1
          fieldPath: metadata.namespace 
          path: namespace
      - name: varlog     #新加内容,注意找好位置。 
        emptyDir: {}       #新加内容
创建 pod
$ kubectl delete -f varlog.yaml

$ kubectl createe -f varlog.yaml

检查

$ 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

你可能感兴趣的:(#,2024,CKA,云原生,运维,kubernetes,容器)