13.6. control plane 机器集故障排除


使用本节中的信息从您可能会遇到的问题了解和恢复。

您可以验证 ControlPlaneMachineSet 自定义资源 (CR) 是否存在以及其状态。

流程

  • 运行以下命令确定 CR 的状态:

    $ oc get controlplanemachineset.machine.openshift.io cluster \
      --namespace openshift-machine-api
    Copy to Clipboard Toggle word wrap
    • Active 的结果表示 ControlPlaneMachineSet CR 存在并被激活。不需要管理员操作。
    • Inactive 表示 ControlPlaneMachineSet CR 存在但没有激活。
    • NotFound 表示没有现有的 ControlPlaneMachineSet CR。

后续步骤

要使用 control plane 机器集,您必须确保集群有正确设置的 ControlPlaneMachineSet CR。

  • 如果您的集群有一个现有的 CR,您必须验证 CR 中的配置是否正确。
  • 如果集群没有现有的 CR,则必须为集群创建一个带有正确配置的 CR。

13.6.2. 添加缺少的 Azure 内部负载均衡器

Azure 的 ControlPlaneMachineSet 和 control plane Machine 自定义资源(CR) 都需要 internalLoadBalancer 参数。如果集群上没有预配置此参数,则必须将其添加到两个 CR 中。

有关此参数位于 Azure 供应商规格中的更多信息,请参阅 Azure 供应商规格示例。control plane Machine CR 中的放置类似。

流程

  1. 运行以下命令列出集群中的 control plane 机器:

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api
    Copy to Clipboard Toggle word wrap
  2. 对于每个 control plane 机器,运行以下命令编辑 CR:

    $ oc edit machine <control_plane_machine_name>
    Copy to Clipboard Toggle word wrap
  3. 添加 internalLoadBalancer 参数,使其包含您的集群的正确详情,并保存您的更改。
  4. 运行以下命令来编辑 control plane 机器集 CR:

    $ oc edit controlplanemachineset.machine.openshift.io cluster \
      -n openshift-machine-api
    Copy to Clipboard Toggle word wrap
  5. 添加 internalLoadBalancer 参数,使其包含您的集群的正确详情,并保存您的更改。

后续步骤

  • 对于使用默认 RollingUpdate 更新策略的集群,Operator 会自动将更改传播到 control plane 配置。
  • 对于配置为使用 OnDelete 更新策略的集群,您必须手动替换 control plane 机器。

13.6.3. 恢复降级的 etcd Operator

在某些情况下可能会导致 etcd Operator 降级。

例如,在执行补救时,机器健康检查可能会删除托管 etcd 的 control plane 机器。如果此时无法访问 etcd 成员,etcd Operator 会降级。

当 etcd Operator 降级时,需要人工干预才能强制 Operator 删除失败的成员并恢复集群状态。

流程

  1. 运行以下命令列出集群中的 control plane 机器:

    $ oc get machines \
      -l machine.openshift.io/cluster-api-machine-role==master \
      -n openshift-machine-api \
      -o wide
    Copy to Clipboard Toggle word wrap

    以下任何条件都可能表示 control plane 机器失败:

    • STATE 值为 stopped
    • PHASE 值是 Failed
    • PHASE 值为 Deleting 超过十分钟。
    重要

    在继续操作前,请确保集群有两个健康的 control plane 机器。对多个 control plane 机器执行操作可能会丢失 etcd 仲裁,并可能导致数据丢失。

    如果您丢失了大多数 control plane 主机,并导致 etcd 仲裁丢失,那么您必须遵循灾难恢复流程 "Restoring to a previous cluster state" 而不是此过程。

  2. 运行以下命令,编辑失败的 control plane 机器的机器 CR:

    $ oc edit machine <control_plane_machine_name>
    Copy to Clipboard Toggle word wrap
  3. 从失败的 control plane 机器中删除 lifecycleHooks 参数的内容并保存您的更改。

    etcd Operator 从集群中移除失败的机器,然后可以安全地添加新的 etcd 成员。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat