Deployment 部署的副本 Pod 會分布在各個 Node 上,每個 Node 都可能運作好幾個副本。DaemonSet 的不同之處在于:每個 Node 上最多隻能運作一個副本。
DaemonSet 的典型應用場景有:
- 在叢集的每個節點上運作存儲 Daemon,比如 glusterd 或 ceph。
- 在每個節點上運作日志收集 Daemon,比如 flunentd 或 logstash。
- 在每個節點上運作監控 Daemon,比如 Prometheus Node Exporter 或 collectd。
其實 Kubernetes 自己就在用 DaemonSet 運作系統元件。執行如下指令:
kubectl get daemonset --namespace=kube-system

DaemonSet
kube-flannel-ds
和
kube-proxy
分别負責在每個節點上運作 flannel 和 kube-proxy 元件。