6.3. 为基础架构节点分配机器设置资源
在创建了基础架构机器集后,worker
和 infra
角色将应用到新的 infra 节点。应用 infra
角色的节点不会被计算为运行环境所需的订阅总数,即使也应用了 worker
角色。
但是,如果将 infra 节点分配为 worker,则用户工作负载可能会意外地分配给 infra 节点。要避免这种情况,您必须将污点应用到 infra 节点,并为您要控制的 pod 应用容限。
6.3.1. 使用污点和容限绑定基础架构节点工作负载
如果您有一个分配了 infra
和 worker
角色的 infra 节点,您必须配置该节点,以便不为其分配用户工作负载。
先决条件
-
在 OpenShift Container Platform 集群中配置额外的
MachineSet
对象。
流程
使用以下命令,将污点添加到 infra 节点,以防止在其上调度用户工作负载:
$ oc adm taint nodes <node_name> <key>:<effect>
例如:
$ oc adm taint nodes node1 node-role.kubernetes.io/infra:NoSchedule
本例在
node1
上放置一个键为node-role.kubernetes.io/infra
的污点,污点是NoSchedule
。具有NoSchedule effect
的节点仅调度容许该污点的 pod,但允许现有 pod 继续调度到该节点上。注意如果使用 descheduler,则违反了节点污点的 pod 可能会从集群驱除。
为要在 infra 节点上调度的 pod 配置添加容限,如路由器、registry 和监控工作负载。在
Pod
对象规格中添加以下代码:tolerations: - effect: NoSchedule 1 key: node-role.kubernetes.io/infra 2 operator: Exists 3
此容忍度与
oc adm taint
命令创建的污点匹配。具有此容忍度的 pod 可以调度到 infra 节点上。注意并不总是能够将通过 OLM 安装的 Operator 的 Pod 移到 infra 节点。移动 Operator Pod 的能力取决于每个 Operator 的配置。
- 使用调度程序将 pod 调度到 infra 节点。详情请参阅控制节点上的 pod 放置的文档。
其他资源
- 如需了解有关将 pod 调度到节点的信息,请参阅使用调度程序控制 pod 放置。
- 如需有关将 pod 调度到 infra 节点的说明,请参阅将资源移动到基础架构机器集。