它的核心作用是确保集群中所有(或指定的)节点上,都运行且仅运行一个 Pod 副本。DaemonSet 限制的是 “某一个特定的任务” 只有一个副本,而不是说 “整个节点只能跑一个 Pod”。 DaemonSet 管理的都是节点级(Node-level)的基础设施服务
Fluentd、Logstash 或 Filebeat。它们需要收集所在节点上的本地日志文件,并统一转发到中央日志平台。Prometheus Node Exporter。它们负责采集当前节点的硬件指标(CPU、内存、网络等)供监控系统抓取。Calico-node 或 Flannel。它们必须在每个节点上运行,以处理容器网络的底层路由和通信规则。Glusterd 或 Ceph。它们负责在节点上挂载远程存储目录和操作容器的 Volume。
Prometheus Node Exporter 为例:它的作用是采集所在服务器的 CPU、内存、磁盘 IO 等硬件指标。一台物理机上的硬件状态,只需要一个进程就能全部读取完并暴露出接口。如果在同一台机器上跑 3 个 Node Exporter,不仅浪费资源,还会导致端口冲突。Filebeat (日志收集) 为例:它负责监听 /var/log/containers/ 目录下的本地日志文件。一个 Filebeat 进程就足以处理这台机器上所有的容器日志了,多开几个毫无意义。calico-node 为例:它负责配置这台机器上的底层网络路由规则(如 iptables)。一个守护进程就能接管整台机器的网络流量转发。calico-node)node-exporter)