DaemonSet控制器
会在所有节点上运行一个守护进程的pod,多用于指标、日志或特殊信息采集等
并且后续添加的新节点也会自动分配到一个pod,每个节点最多会运行一个pod副本
案例
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds-test
labels:
app: filebeat
spec:
selector:
matchLabels:
app: filebeat
template:
metadata:
labels:
app: filebeat
spec:
containers:
- name: logs
image: nginx:1.15
ports:
- containerPort: 80
volumeMounts:
- name: varlog
mountPath: /tmp/log
volumes:
- name: varlog
hostPath:
path: /var/log
这个yaml的作用是将所有节点的/var/log目录下的日志信息挂载到容器中进行采集,再后面做监控指标的时候会用到
查看
[root@k8s-master01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
ds-test-l77dt 1/1 Running 0 36s
ds-test-qkmpf 1/1 Running 0 36s
ds-test-wkmc4 1/1 Running 0 36s
登陆一个pod查看
kubectl exec -it ds-test-l77dt bash
#查看日志目录是否挂载进来了
ls /tmp/log/
可以看到,节点上的/var/log目录已经挂载进来了,其他所有运行pod的节点都会收集到