daemonset 会始终部署到所有节点吗?

Will a daemonset always be deployed to all nodes?

我想知道 kubernetes 中的守护进程是否总是会部署到所有节点。

我的困惑来自以下对守护进程的描述

A DaemonSet makes sure that all or some kubernetes Nodes run a copy of a Pod.

"or some" 部分暗示了某些节点不会 运行 一个 pod 的情况。对于我的用例,重要的是所有节点都将 运行 一个实例。在什么情况下节点不会 运行 pod 的实例,即使它被部署为守护进程?

这取决于选择的节点目标。

If you specify a .spec.template.spec.nodeSelector, then the DaemonSet controller will create Pods on nodes which match that node selector. Likewise if you specify a .spec.template.spec.affinity, then DaemonSet controller will create Pods on nodes which match that node affinity. If you do not specify either, then the DaemonSet controller will create Pods on all nodes.DaemonSet

另外,我会检查 taint and toleration 的 Daemonset。