如何在主节点上实际调度 Pod

时间:2021-05-11 12:44:05

标签: kubernetes

我正在尝试在主节点上安排 Pod。成功清除节点

<块引用>

kubectl 污点节点 mymasternode node-role.kubernetes.io/master:NoSchedule-

节点/mymasternode 未受污染

然后在 deploy.yaml 中将副本更改为 4 并应用它,所有 pod 都安排在已经是工作程序的工作程序节点上。

是否还需要额外的步骤来在主节点上调度 Pod?

1 个答案:

答案 0 :(得分:4)

要在应用了污点的控制平面节点上安排 pod(大多数 Kubernetes 发行版都会这样做),您需要向清单添加容忍度,如 their documentation 中所述,而不是清除控制平面的污点节点。取消控制平面节点的污染可能很危险,因为如果该节点上的资源耗尽,您的集群运行可能会受到影响。

类似下面的东西应该可以工作

      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule

如果您希望为每个节点安排一个 pod,通常的方法是创建一个应用了该容忍度的 daemonset

如果您需要将 Pod 调度到控制平面节点,而不使用守护进程集,则可以将容忍度与调度信息结合起来,以将其分配给特定节点。最简单的方法是在清单中指定目标 node name

这不是一种非常灵活的方法,因此例如,如果您想将 Pod 分配给任何控制平面节点,您可以将标签应用于这些节点并使用 node selector 与容忍度相结合来获得分配到那里的工作负载。