7.5.6. 禁用 Machine Config Operator 自动重新引导
当 Machine Config Operator 进行配置更改时,Red Hat Enterprise Linux CoreOS(RHCOS)必须重启才能使更改生效。无论配置更改是自动的(如 kube-apiserver-to-kubelet-signer
CA 被轮转)或手动的(如更新容器镜像仓库 或 SSH 密钥),RHCOS 节点都会自动重启,除非被暂停。
为了避免不必要的中断,您可以修改机器配置池(MCP)以防止在 Operator 更改机器配置后自动重启。
暂停 MCP 可防止 MCO 在关联的节点上应用任何配置更改。暂停 MCP 还可以防止任何自动轮转的证书被推送到关联的节点,包括自动轮转 kube-apiserver-to-kubelet-signer
CA 证书。如果在 kube-apiserver-to-kubelet-signer
CA 证书过期且 MCO 尝试自动续订证书时,MCP 会暂停,但不会在暂停的 MCP 中跨节点应用新证书。这会导致多个 oc
命令失败,包括但不限于 oc debug
、oc logs
、oc exec
和 oc attach
。在暂停 MCP 时应该非常小心,需要仔细考虑 kube-apiserver-to-kubelet-signer
CA 证书过期的问题,且仅在短时间内暂停。
新 CA 证书会在自安装日期起的 292 天生成,并在自该日期起的 365 天后删除。要确定下一个自动 CA 证书轮转,请参阅 Red Hat OpenShift 4 中的了解 CA 证书自动续订。
kube-apiserver-to-kubelet-signer
CA 轮转不会造成在 OpenShift Container Platform 版本 4.7 及更高版本中的意外的节点重启问题。
7.5.6.1. 使用控制台禁用 Machine Config Operator 自动重新引导
为了避免对 Machine Config Operator(MCO)所做的更改造成不必要的中断,您可以使用 OpenShift Container Platform Web 控制台修改机器配置池(MCP),以防止 MCO 在那个池中对节点进行任何更改。这会防止任何通常属于 MCO 更新过程一部分的重启。
暂停 MCP 可防止 MCO 在关联的节点上应用任何配置更改。暂停 MCP 还可以防止任何自动轮转的证书被推送到关联的节点,包括自动轮转 kube-apiserver-to-kubelet-signer
CA 证书。如果在 kube-apiserver-to-kubelet-signer
CA 证书过期且 MCO 尝试自动续订证书时,MCP 会暂停,但不会在暂停的 MCP 中跨节点应用新证书。这会导致多个 oc
命令失败,包括但不限于 oc debug
、oc logs
、oc exec
和 oc attach
。在暂停 MCP 时应该非常小心,需要仔细考虑 kube-apiserver-to-kubelet-signer
CA 证书过期的问题,且仅在短时间内暂停。
新 CA 证书会在自安装日期起的 292 天生成,并在自该日期起的 365 天后删除。要确定下一个自动 CA 证书轮转,请参阅 Red Hat OpenShift 4 中的了解 CA 证书自动续订。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
要暂停或取消暂停自动 MCO 更新重新引导:
暂停自动引导过程:
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。 -
点 Compute
MachineConfigPools。 - 在 MachineConfigPools 页面中,点击 master 或 worker,具体取决于您要暂停重新引导的节点。
- 在 master 或 worker 页面中,点 YAML。
在 YAML 中,将
spec.paused
字段更新为true
。MachineConfigPool 对象示例
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool ... spec: ... paused: true 1
- 1
- 将
spec.paused
字段更新为true
以暂停重新引导。
要验证 MCP 是否已暂停,请返回到 MachineConfigPools 页面。
在 MachineConfigPools 页面中,您修改的 MCP 报告了 Paused 列中为 True。
如果 MCP 在暂停时有待处理的变化,Updated 列为 False,Updating 为 False。当 Updated 为 True 且 Updating 为 False 时,代表没有待处理的更改。
重要如果有尚未进行的更改( Updated 和 Updating 字段都是 False),建议您尽快调度一个维护窗口用于重启。使用以下步骤取消暂停自动引导过程,以应用上一次重启后排队的更改。
-
以具有
取消暂停自动引导过程:
-
以具有
cluster-admin
角色的用户身份登录到 OpenShift Container Platform web 控制台。 -
点 Compute
MachineConfigPools。 - 在 MachineConfigPools 页面中,点击 master 或 worker,具体取决于您要暂停重新引导的节点。
- 在 master 或 worker 页面中,点 YAML。
在 YAML 中,将
spec.paused
字段更新为false
。MachineConfigPool 对象示例
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool ... spec: ... paused: false 1
- 1
- 将
spec.paused
字段更新为false
以允许重启。
注意通过取消暂停 MCP,MCO 应用所有暂停的更改,根据需要重启 Red Hat Enterprise Linux CoreOS(RHCOS)。
要验证 MCP 是否已暂停,请返回到 MachineConfigPools 页面。
在 MachineConfigPools 页面中,您修改的 MCP 报告 Paused 列为 False。
如果 MCP 正在应用任何待处理的更改,Updated 列为 False,Updating 列为 True。当 Updated 为 True 且 Updating 为 False 时,不会再进行任何更改。
-
以具有