[CKA]十五、添加 Sidecar 容器并输出⽇志
15、添加 Sidecar 容器并输出⽇志
1. 考题内容:
2. 答题思路:
查看运行的11-factor-app名字的pod并生成yaml文件
删除正在运行的11-factor-app名字的pod
添加题目要求的sidecar容器和存储卷,并挂载在两个容器中
重新运行yaml文件创建pod
修改yaml文件是注意空格和位置
3. 官网地址:
https://kubernetes.io/zh-cn/docs/concepts/cluster-administration/logging/
4. 考题答案:
切换环境
kubectl config use-context k8s# 1).导出11-factor-app的yaml文件
kubectl get pod 11-factor-app -o yaml > sidecar.yaml# 2).备份sidecar.yaml
cp sidecar.yaml sidecar_bak.yaml# 3).删除运行的11-factor-app
kubectl delete -f sidecar.yaml# 4).编辑sidecar.yaml添加以下信息- name: varlogmountPath: /var/log- name: sidecarimage: busyboxargs: [/bin/sh, -c, 'tail -n+1 -f /var/log/11-factor-app.log']volumeMounts:- name: varlogmountPath: /var/logvolumes:- name: varlogemptyDir: {}# 5).重新创建11-factor-app
kubectl apply -f sidecar.yaml
真实考题示例
apiVersion: v1
kind: Pod
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration:......creationTimestamp:name: legacy-appnamespace: defaultresourceVersion: "4567"uid: ......
spec:containers:- env:- name: LOG_FILENAMEvalue: /var/log/legacy-appimage: imagePullPolicy: Alwaysname: monitorresources: {}terminationMessagePath: /dev/termination-1ogterminationMessagePolicy: FilevolumeMounts:- mountPath: /var/run/secrets/kubernetes.io/serviceaccountname: kube-api-access-2v2fgread0nly: true- name: varlogmountPath: /var/log- name: sidecarimage: busyboxargs: [/bin/sh, -c, 'tail -n+1 -f /var/log/11-factor-app.log']volumeMounts:- name: varlogmountPath: /var/logdnsPolicy: ClusterFirstenableServiceLinks: truenodeName: k8s-node2preemptionPolicy: PreemptLowerPrioritypriority: 0restartPolicy: AlwaysschedulerName: default-schedulersecurityContext: {}serviceAccount: defaultserviceAccountName: defaultterminationGracePeriodSeconds: 30tolerations:- effect: NoExecutekey: node.kubernetes.io/not-readyoperator: ExiststolerationSeconds: 300- effect: NoExecutekey: node.kubernetes.io/unreachableoperator: ExiststolerationSeconds: 300 volumes:- name: kube-api-access-2vzfgprojected:defaultMode: 420sources:- serviceAccountToken:expirationSeconds: 3607path: token- configMap:items:- key: ca.crtpath: ca.crtname: kube-root-ca.crt- downwardAPI:items:- fieldRef:apiVersion: v1fieldPath: metadata.namespacepath: namespace- name: varlogemptyDir: {}
status:
......
5. 验证:
# 1).查看11-factor-app 的容器数量是否是2个
kubectl get po 11-factor-app# 2).查看11-factor-app 的日志文件
kubectl logs 11-factor-app -c sidecar