7.6.6. 禁用 Machine Config Operator 自动重新引导


当 Machine Config Operator(MCO)进行配置更改时,Red Hat Enterprise Linux CoreOS(RHCOS)必须重启才能使更改生效。无论配置更改是自动还是手动的,RHCOS 节点都会自动重启,除非它已被暂停。

注意

以下修改不会触发节点重新引导:

  • 当 MCO 检测到以下任何更改时,它会在不排空或重启节点的情况下应用更新:

    • 在机器配置的 spec.config.passwd.users.sshAuthorizedKeys 参数中更改 SSH 密钥。
    • openshift-config 命名空间中更改全局 pull secret 或 pull secret。
    • Kubernetes API Server Operator 自动轮转 /etc/kubernetes/kubelet-ca.crt 证书颁发机构(CA)。
  • 当 MCO 检测到对 /etc/containers/registries.conf 文件的更改时,如添加或编辑 ImageContentSourcePolicy 对象,它会排空相应的节点,应用更改并取消记录节点。

为了避免不必要的中断,您可以修改机器配置池(MCP)以防止在 Operator 更改机器配置后自动重启。

注意

暂停 MCP 可防止 MCO 在关联的节点上应用任何配置更改。暂停 MCP 还可以防止任何自动轮转的证书被推送到关联的节点,包括自动轮转 kube-apiserver-to-kubelet-signer CA 证书。如果在 kube-apiserver-to-kubelet-signer CA 证书过期且 MCO 尝试自动续订证书时,MCP 会暂停,但不会在暂停的 MCP 中跨节点应用新证书。这会导致多个 oc 命令失败,包括但不限于 oc debugoc logsoc execoc attach。在暂停 MCP 时应该非常小心,需要仔细考虑 kube-apiserver-to-kubelet-signer CA 证书过期的问题,且仅在短时间内暂停。

新 CA 证书会在自安装日期起的 292 天生成,并在自该日期起的 365 天后删除。要确定下一个自动 CA 证书轮转,请参阅 Red Hat OpenShift 4 中的了解 CA 证书自动续订

7.6.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 debugoc logsoc execoc attach。在暂停 MCP 时应该非常小心,需要仔细考虑 kube-apiserver-to-kubelet-signer CA 证书过期的问题,且仅在短时间内暂停。

新 CA 证书会在自安装日期起的 292 天生成,并在自该日期起的 365 天后删除。要确定下一个自动 CA 证书轮转,请参阅 Red Hat OpenShift 4 中的了解 CA 证书自动续订

先决条件

  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

要暂停或取消暂停自动 MCO 更新重新引导:

  • 暂停自动引导过程:

    1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform web 控制台。
    2. Compute MachineConfigPools
    3. MachineConfigPools 页面中,点击 masterworker,具体取决于您要暂停重新引导的节点。
    4. masterworker 页面中,点 YAML
    5. 在 YAML 中,将 spec.paused 字段更新为 true

      MachineConfigPool 对象示例

      apiVersion: machineconfiguration.openshift.io/v1
      kind: MachineConfigPool
       ...
      spec:
       ...
        paused: true 1

      1
      spec.paused 字段更新为 true 以暂停重新引导。
    6. 要验证 MCP 是否已暂停,请返回到 MachineConfigPools 页面。

      MachineConfigPools 页面中,您修改的 MCP 报告了 Paused 列中为 True

      如果 MCP 在暂停时有待处理的变化,Updated 列为 FalseUpdatingFalse。当 UpdatedTrueUpdatingFalse 时,代表没有待处理的更改。

      重要

      如果有尚未进行的更改( UpdatedUpdating 字段都是 False),建议您尽快调度一个维护窗口用于重启。使用以下步骤取消暂停自动引导过程,以应用上一次重启后排队的更改。

  • 取消暂停自动引导过程:

    1. 以具有 cluster-admin 角色的用户身份登录到 OpenShift Container Platform web 控制台。
    2. Compute MachineConfigPools
    3. MachineConfigPools 页面中,点击 masterworker,具体取决于您要暂停重新引导的节点。
    4. masterworker 页面中,点 YAML
    5. 在 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)。

    6. 要验证 MCP 是否已暂停,请返回到 MachineConfigPools 页面。

      MachineConfigPools 页面中,您修改的 MCP 报告 Paused 列为 False

      如果 MCP 正在应用任何待处理的更改,Updated 列为 FalseUpdating 列为 True。当 UpdatedTrueUpdatingFalse 时,不会再进行任何更改。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.