一、Kubernetes DaemonSet(部署守护进程)
- 在每一个Node上运行一个Pod,或者是匹配的节点上部署一个Pod。
- 新加入的Node也同样会自动运行一个Pod。
应用场景: - Agent
- 运行集群存储的daemon,比如ceph或者glusterd
- 节点的CNI网络插件,calico
- 节点监控:node exporter
- 节点日志收集:fluentd或filebeat
- 服务暴露:部署一个ingress nginx
官方文档:https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/
二、案例
1、创建yaml文件
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
containers:
- image: nginx
ports:
- containerPort: 80
挂载目录
volumeMounts:
- name: varlog
mountPath: /tmp/log
volumes:
- name: varlog
hostPath:
path: /var/log
2、创建容器
kubectl apply -f ds.yaml
3、查看pod
kubectl get pods
NAME READY STATUS RESTARTS AGE
ds-test-8487j 1/1 Running 0 8s
ds-test-lkflr 1/1 Running 0 8s
4、进入容器测试挂在
kubectl exec -it ds-test-8487j bash
root@ds-test-8487j:/# ls /tmp/log/
anaconda cron-20190825 secure
audit dmesg secure-20190825
boot.log dmesg.old spooler
boot.log-20190822 firewalld spooler-20190825
boot.log-20190823 grubby_prune_debug tallylog
boot.log-20190824 lastlog tuned
boot.log-20190825 maillog vmware-vgauthsvc.log.0
boot.log-20190827 maillog-20190825 vmware-vmsvc.log
btmp messages wtmp
chrony messages-20190825 yum.log
containers pods
cron rhsm