kubernetes - 如何在主节点上实际安排 Pod
问题描述
我正在尝试在主节点上安排 gey pod。成功清除节点
kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-
节点/mymasternode 未污染
但随后在 deploy.yaml 中将副本更改为 4 并应用它,所有 pod 都安排在已经是工作人员的工作节点上。
在主节点上安排 Pod 是否还需要额外的步骤?
解决方案
要在应用了污点的控制平面节点上安排 pod(大多数 Kubernetes 发行版都会这样做),您需要向清单添加容忍度,如其文档中所述,而不是取消控制平面节点的污点。清除控制平面节点可能很危险,因为如果您用完该节点上的资源,您的集群的操作可能会受到影响。
像下面这样的东西应该工作
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
如果您希望为每个节点安排一个 pod,通常方法是创建一个应用了该容忍度的守护程序集。
如果您需要将 pod 调度到控制平面节点,而不使用守护程序集,则可以将容忍度与调度信息结合起来,将其分配给特定节点。最简单的方法是在清单中指定目标节点名称。
这不是一种非常灵活的方法,因此例如,如果您想将 pod 分配给任何控制平面节点,您可以将标签应用到这些节点并使用节点选择器与容忍度相结合来获得分配在那里的工作负载。
推荐阅读
- excel - 当我运行用户表单时,我在 VBA 中收到子脚本超出范围错误
- javascript - 如何在同一个 ui-select 字段上同时应用 filter:$select.search 和 limitTo:$select.infiniteCurrentLimit?
- java - java.lang.RuntimeException:编码时出错:java.lang.ArrayIndexOutOfBoundsException:1
- javascript - 无法打印国际字符
- python - + 符号在此代码中的作用是什么?
- vb.net - 代码仅在以 3.3 到 4 之间的数字运行时显示“以优异成绩”。(非常小的程序 - 少于 25 行)
- excel - 修改 sumproduct 公式以忽略#value!在范围内
- angular - 如何在 Angular 7 中使用 Rdlc 报告
- r - 子集样本的多个标准 - R
- sql - 从 SQL 上不规则日期的集合中滚动 3 个月的总和和行数