首页 > 解决方案 > 如何在主节点上实际安排 Pod

问题描述

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

kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-

节点/mymasternode 未污染

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

在主节点上安排 Pod 是否还需要额外的步骤?

标签: kubernetes

解决方案


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

像下面这样的东西应该工作

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

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

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

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


推荐阅读