1.3. 了解 Machine Config Operator 节点排空行为
当您使用机器配置更改系统功能时(如添加新配置文件、修改 systemd 单元或内核参数或更新 SSH 密钥),Machine Config Operator (MCO) 会应用这些更改,并确保每个节点处于所需的配置状态。
在进行更改后,MCO 会确保生成新的机器配置。在大多数情况下,当应用新的机器配置时,Operator 会在每个受影响的节点上执行以下步骤,直到所有受影响的节点都有更新的配置:
- Cordon.对于额外的工作负载,MCO 会将节点标记为不可调度。
- Drain.MCO 终止节点上运行的所有工作负载,导致工作负载重新调度到其他节点上。
- Apply.MCO 根据需要将新配置写入节点。
- 重新启动.MCO 重启节点。
- Uncordon.对于工作负载,MCO 将节点标记为可调度。
在此过程中,MCO 根据机器配置池中设置的 MaxUnavailable
值维护所需的 pod 数量。
有些条件可能会阻止 MCO 排空节点。如果 MCO 无法排空节点,Operator 将无法重启该节点,从而导致通过机器配置对节点进行任何更改。如需更多信息和缓解步骤,请参阅 MCCDrainError runbook。
如果 MCO 在 master 节点上排空 pod,请注意以下条件:
- 在单节点 OpenShift 集群中,MCO 会跳过排空操作。
- MCO 不会排空静态 pod,以防止干扰服务(如 etcd)。
在某些情况下,节点不会被排空。如需更多信息,请参阅 "About the Machine Config Operator"。
使用节点中断策略或禁用 control plane 重启,可以缓解排空和重启周期造成的中断。如需更多信息,请参阅"了解机器配置更改后节点重启的行为"和"禁用 Machine Config Operator 自动重新引导"。