5.7. 为基础架构节点分配机器设置资源
				在创建了基础架构机器集后,worker 和 infra 角色将应用到新的 infra 节点。具有 infra 角色的节点不会计入运行环境所需的订阅总数中,即使也应用了 worker 角色。
			
但是,当为 infra 节点分配 worker 角色时,用户工作负载可能会意外地分配给 infra 节点。要避免这种情况,您可以将污点应用到 infra 节点,并为您要控制的 pod 应用容限。
5.7.1. 使用污点和容限绑定基础架构节点工作负载
					如果您有一个分配了 infra 和 worker 角色的基础架构节点,您必须配置该节点,以便不为其分配用户工作负载。
				
						建议您保留为基础架构节点创建的双 infra,worker 标签,并使用污点和容限来管理用户工作负载调度到的节点。如果从节点中删除 worker 标签,您必须创建一个自定义池来管理它。没有自定义池的 MCO 不能识别具有 master 或 worker 以外的标签的节点。如果不存在选择自定义标签的自定义池,维护 worker 标签可允许默认 worker 机器配置池管理节点。infra 标签与集群通信,它不计算订阅总数。
					
先决条件
- 
							在 OpenShift Container Platform 集群中配置额外的 MachineSet对象。
流程
- 为基础架构节点添加污点以防止在其上调度用户工作负载: - 确定节点是否具有污点: - oc describe nodes <node_name> - $ oc describe nodes <node_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 本例显示节点具有污点。您可以在下一步中继续向 pod 添加容限。 
- 如果您还没有配置污点以防止在其上调度用户工作负载: - oc adm taint nodes <node_name> <key>=<value>:<effect> - $ oc adm taint nodes <node_name> <key>=<value>:<effect>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 例如: - oc adm taint nodes node1 node-role.kubernetes.io/infra=reserved:NoSchedule - $ oc adm taint nodes node1 node-role.kubernetes.io/infra=reserved:NoSchedule- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 提示- 您还可以编辑 pod 规格来添加污点: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 这些示例在 - node1上放置一个具有- node-role.kubernetes.io/infra键和- NoSchedule污点效果的污点。具有- NoSchedule effect的节点仅调度容许该污点的 pod,但允许现有 pod 继续调度到该节点上。- 如果您在基础架构节点中添加了 - NoSchedule污点,则该节点上守护进程集控制的所有 pod 都会被标记为- misscheduled。您必须删除 pod,或为 pod 添加容限,如红帽知识库解决方案中所示,在- misscheduledDNS pod 上添加容限。请注意,您无法将容限添加到由 Operator 管理的守护进程集对象中。注意- 如果使用 descheduler,则违反了节点污点的 pod 可能会从集群驱除。 
 
- 为要在基础架构节点上调度的 pod 添加容限,如路由器、registry 和监控工作负载。引用前面的示例,在 - Pod对象规格中添加以下容限:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 此容忍度与 - oc adm taint命令创建的污点匹配。具有此容忍度的 pod 可以调度到基础架构节点上。注意- 并不总是能够将通过 OLM 安装的 Operator 的 Pod 移到基础架构节点。移动 Operator Pod 的能力取决于每个 Operator 的配置。 
- 使用调度程序将 pod 调度到基础架构节点。详情请参阅"使用调度程序控制 pod 放置"的文档。
- 在新的基础架构节点上,删除您不想或不属于的任何工作负载。请参阅"OpenShift Container Platform 基础架构组件"中在基础架构节点上支持的工作负载列表。