我正在考虑将我的 Kubernetes 集群划分为专用节点区域,供专用用户集独家使用,如此处所述。我想知道污染节点会如何影响DaemonSets
,包括那些对集群操作至关重要的节点(例如kube-proxy
,kube-flannel-ds-amd64
)?
文档说守护进程 pod 尊重 taints 和 tolerations。kubectl taint nodes node-x zone=zone-y:NoSchedule
但如果是这样,当 Pod(不受我控制但由 Kubernetes 自己拥有DaemonSet kube-proxy
)不携带相应的容忍度时,系统如何在受污染的节点上调度例如 kube-proxy Pod 。
到目前为止,我凭经验发现 Kubernetes 1.14 重新安排了一个 kube-proxy pod(在我在 tainted 上删除它之后node-x
),这似乎与文档相矛盾。另一方面,我自己的情况似乎并非如此DaemonSet
。当我杀死它的 pod 时node-x
,只有在我删除节点的 taint 之后(或者大概是在我在 pod 的规范中添加容忍度之后)才会重新安排它DaemonSet
。
那么DaemonSet
s 和 tolerations 如何在细节上进行互操作。会不会是某些DaemonSet
s(例如kube-proxy
, kube-flannel-ds-amd64
)被特殊对待?