DaemonSet
DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本。当有 Node 加入集群时,也会为他们新增一个 Pod 。当有 Node 从集群移除时,这些 Pod 也会被回收。删除 DaemonSet 将会删除它创建的所有 Pod
使用 DaemonSet 的一些典型用法:
-
运行集群存储 daemon,例如在每个 Node 上运行 glusterd 、 ceph
-
在每个 Node 上运行日志收集 daemon,例如 fluentd 、 logstash
-
在每个 Node 上运行监控 daemon,例如 Prometheus Node Exporter、 collectd 、Datadog 代理、New Relic 代理,或 Ganglia gmond
apiVersion
[root@k8s-master01 ~]# kubectl create -f daemonset.yaml
daemonset.apps/deamonset-example created
[root@k8s-master01 ~]# kubectl get pod -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deamonset-example-bj2lk 1/1 Running 0 48s 10.244.1.40 k8s-node01 <none> <none>
deamonset-example-h7g25 1/1 Running 0 45s 10.244.2.40 k8s-node02 <none> <none>
[root@k8s-master01 ~]#
当我们把node01上面的pod删除,它也会继续新建出来一个,只需要满足一个node上面副本数为1!
删除daemonset
[root@k8s-master01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
deamonset-example-bj2lk 1/1 Running 0 44m
deamonset-example-h7g25 1/1 Running 0 44m
[root@k8s-master01 ~]# kubectl delete daemonset --all
daemonset.apps "deamonset-example" deleted
[root@k8s-master01 ~]#