DaemonSet確保全部(或者一些)Node上運行一個Pod的副本。
當有Node加入集羣時,也會爲他們新增一個Pod。
當有Node從集羣移除時,這些Pod也會被回收。
刪除DaemonSet將會刪除它創建的所有Pod
使用DaemonSet的一些典型用法:
- 運行集羣daemon,例如在每一個Node上運行glusterd/ceph
- 在每一個Node上運行日誌收集daemon,例如fluentd/logstash
- 在每一個Node上運行監控daemon,例如Prometheus Node Exporter 等
[root@k8s-master01 k8s-test]# cat daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: daemonset-example
labels:
app: daemonset
spec:
selector:
matchLabels:
name: daemonset-example
template:
metadata:
labels:
name: daemonset-example
spec:
containers:
- name: daemonset-example
image: kone.com/library/nginx
kubectl create -f daemonset.yaml
[root@k8s-master01 k8s-test]# kubectl get pod -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
daemonset-example-dvhs8 1/1 Running 0 16s 10.244.3.27 k8s-node02 <none> <none>
daemonset-example-w52jw 1/1 Running 0 16s 10.244.2.65 k8s-node01 <none> <none>