CKA考试知识点分享(3)---sidecar
CKA 版本:1.32
第三套题是涉及sidecar相关。
注意:本文不是题目,只是为了学习相关知识点做的实验。仅供参考
实验目的
创建一个pod,实现对应的sidecar,验证数据和进程空间相通。
1 环境准备
准备一个nginx 的deployment 。
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- name: nginximage: docker.m.daocloud.io/library/nginx:stable-alpineports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: nginxlabels:run: nginx
spec:ports:- port: 80selector:run: nginx
检查是否正常运行
2 创建Sidecar
修改nginx的deployment,创建对应的Sidecar ,我们使用busybox 作为边车容器
再通过挂载存储的方式,共享到两个容器,实现数据互通。存储卷使用空卷。
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:selector:matchLabels:run: nginxtemplate:metadata:labels:run: nginxspec:containers:- name: nginximage: docker.m.daocloud.io/library/nginx:stable-alpineports:- containerPort: 80volumeMounts: #实现挂载主容器- name: datamountPath: /var/log/nginx- name: nginx-sidecarimage: registry.cn-beijing.aliyuncs.com/kubesphereio/busybox:1.31.1command: ['sh', '-c', 'tail -F /var/log/nginx/access.log']volumeMounts: #实现挂载边车容器- name: datamountPath: /var/log/nginxvolumes: #存储卷- name: dataemptyDir: {}
检查边车容器是否正常运行
3 验证Sidecar
3.1 验证数据相通
通过svc 来访问nginx 生成一条access.log日志。
查看边车容器的日志,可以确定nginx日志已经被边车容器读取成功。
进入边车容器,查看数据。
kubectl exec -it nginx-5dbfcff576-5swmz -c nginx-sidecar bash
3.2 验证进程命名空间相通
有一种情况,是想要通过边车容器,查看nginx的进程情况,可以采用工程进程命名空间的方式实现。
修改deployment :
shareProcessNamespace: true
进入边车容器查看,可以看到nginx的启动程序
kubectl exec -it nginx-84bf744969-p6wfj -c nginx-sidecar sh
可以对nginx进程发送进程信号,让nginx worker进行重启。
参考链接:
https://kubernetes.io/zh-cn/docs/concepts/workloads/pods/sidecar-containers/