目录
DaemonSet,控制器能够确保K8S集群中所有的节点都运行一个相同的 Pod,当向K8S集群增加Node节点时,新增加的Node节点上也会自动创建一个应用的Pod副本,当Node节点从集群移除时,这些Pod也会自动删除,删除Daemonset也会删除它们创建的Pod。
DaemonSet的控制器会监听 Kuberntes,的DaemonSet对象、Pod对象、Node对象,这些被监听的对象发生变动,就会触发 syncLoop循环让Kubernetes集群朝着DaemonSet对象描述的状态进行演进。
应用场景 需要在集群每个节点上运行存储,比如: glusterd或ceph。 需要在每个节点上运行日志收集组件,比如: flunentd、logstash、filebeat等。 需要在每个节点上运行监控组件,比如: Prometheus、NodeExporter . collectd等。
Deployment部署的副本Pod会分布在各个Node 上,每个Node都可能运行多个副本。DaemonSet的不同之处在于每个Node 上最多只能运行一个副本。
案例:
部署日志收集组件fluentd [root@master~]# docker load -i fluentd_2_5_1.tar.gz [root@node1 ~]# docker load -i fluentd_2_5_1.tar.gz [root@node2 ~]# docker load -i fluentd_2_5_1.tar.gz
编写yaml文
apiVersion: apps/v1
kind: DaemonSet
metadata