×

使用控制平面机器集,您可以自动管理 OpenShift Container Platform 集群中的控制平面机器资源。

控制平面机器集无法管理计算机器,计算机器集无法管理控制平面机器。

控制平面机器集为控制平面机器提供了与计算机器集为计算机器提供的类似管理功能。但是,这两种机器集是在机器 API 中定义的单独自定义资源,在其架构和功能上存在一些根本差异。

控制平面机器集运算符概述

控制平面机器集运算符使用ControlPlaneMachineSet自定义资源 (CR) 自动管理 OpenShift Container Platform 集群中的控制平面机器资源。

当集群控制平面机器集的状态设置为Active时,运算符确保集群具有指定配置的正确数量的控制平面机器。这允许自动替换降级的控制平面机器和向控制平面推出更改。

一个集群只有一个控制平面机器集,并且运算符仅管理openshift-machine-api命名空间中的对象。

控制平面机器集运算符限制

控制平面机器集运算符具有以下限制

  • 仅支持 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、IBM Power® Virtual Server、Microsoft Azure、Nutanix、VMware vSphere 和 Red Hat OpenStack Platform (RHOSP) 集群。

  • 没有预先存在的表示控制平面节点的机器的集群无法使用控制平面机器集,也无法在安装后启用控制平面机器集。通常,只有在使用安装程序提供的基础设施安装集群时,才会存在预先存在的控制平面机器。

    要确定集群是否具有必需的预先存在的控制平面机器,请以具有管理员权限的用户身份运行以下命令:

    $ oc get machine \
      -n openshift-machine-api \
      -l machine.openshift.io/cluster-api-machine-role=master
    显示预先存在的控制平面机器的示例输出
    NAME                    PHASE     TYPE         REGION      ZONE         AGE
    <infrastructure_id>-master-0   Running   m6i.xlarge   us-west-1   us-west-1a   5h19m
    <infrastructure_id>-master-1   Running   m6i.xlarge   us-west-1   us-west-1b   5h19m
    <infrastructure_id>-master-2   Running   m6i.xlarge   us-west-1   us-west-1a   5h19m
    缺少预先存在的控制平面机器的示例输出
    No resources found in openshift-machine-api namespace.
  • 操作员需要机器 API 操作员处于运行状态,因此不支持在手动配置机器的集群上使用。当使用手动配置的机器安装 OpenShift Container Platform 集群以创建一个活动的生成的ControlPlaneMachineSet自定义资源 (CR) 的平台时,必须按照安装过程中的说明删除定义控制平面机器集的 Kubernetes 清单文件。

  • 仅支持具有三个控制平面机器的集群。

  • 不支持控制平面的水平扩展。

  • 在短暂的 OS 磁盘上部署 Azure 控制平面机器会增加数据丢失的风险,因此不支持。

  • 不支持将控制平面机器部署为 AWS Spot 实例、GCP 预抢占式虚拟机或 Azure Spot 虚拟机。

    尝试将控制平面机器部署为 AWS Spot 实例、GCP 预抢占式虚拟机或 Azure Spot 虚拟机可能会导致集群丢失 etcd 仲裁。同时丢失所有控制平面机器的集群是不可恢复的。

  • 在安装期间或之前更改控制平面机器集不受支持。必须仅在安装后才能对控制平面机器集进行任何更改。