我正在尝试在主节点上安排 Pod。成功清除节点
<块引用>kubectl 污点节点 mymasternode node-role.kubernetes.io/master:NoSchedule-
节点/mymasternode 未受污染
然后在 deploy.yaml 中将副本更改为 4 并应用它,所有 pod 都安排在已经是工作程序的工作程序节点上。
是否还需要额外的步骤来在主节点上调度 Pod?
答案 0 :(得分:4)
要在应用了污点的控制平面节点上安排 pod(大多数 Kubernetes 发行版都会这样做),您需要向清单添加容忍度,如 their documentation 中所述,而不是清除控制平面的污点节点。取消控制平面节点的污染可能很危险,因为如果该节点上的资源耗尽,您的集群运行可能会受到影响。
类似下面的东西应该可以工作
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
如果您希望为每个节点安排一个 pod,通常的方法是创建一个应用了该容忍度的 daemonset。
如果您需要将 Pod 调度到控制平面节点,而不使用守护进程集,则可以将容忍度与调度信息结合起来,以将其分配给特定节点。最简单的方法是在清单中指定目标 node name。
这不是一种非常灵活的方法,因此例如,如果您想将 Pod 分配给任何控制平面节点,您可以将标签应用于这些节点并使用 node selector 与容忍度相结合来获得分配到那里的工作负载。