13.2. control plane 机器集入门
control plane 机器集入门的过程取决于集群中的 ControlPlaneMachineSet
自定义资源 (CR) 的状态。
- 生成的具有活跃状态的 CR 的集群
- 生成的具有活跃状态的 CR 的集群默认使用 control plane 机器集。不需要管理员操作。
- 具有生成的不活跃 CR 的集群
- 对于包含具有生成的不活跃 CR 的集群,您必须检查 CR 配置并激活 CR。
- 没有生成的 CR 的集群
- 对于不包含生成的 CR 的集群,您必须为集群 创建并激活具有适当配置的 CR。
如果不确定集群中 ControlPlaneMachineSet
CR 的状态,您可以验证 CR 状态。
13.2.1. 支持的云供应商
在 OpenShift Container Platform 4.12 中,Amazon Web Services (AWS)、Microsoft Azure 和 VMware vSphere 集群支持 control plane 机器集。
安装后 control plane 机器集的状态取决于您的云供应商和集群中安装的 OpenShift Container Platform 版本。
云供应商 | 默认激活 | 生成的 CR | 需要手动 CR |
---|---|---|---|
Amazon Web Services (AWS) | X [1] | X | |
Microsoft Azure | X | ||
VMware vSphere | X |
- 从早期版本升级到 4.12 版本的 AWS 集群需要激活 CR。
13.2.2. 检查 control plane 机器设置自定义资源状态
您可以验证 ControlPlaneMachineSet
自定义资源 (CR) 是否存在以及其状态。
流程
运行以下命令确定 CR 的状态:
$ oc get controlplanemachineset.machine.openshift.io cluster \ --namespace openshift-machine-api
-
Active
的结果表示ControlPlaneMachineSet
CR 存在并被激活。不需要管理员操作。 -
Inactive
表示ControlPlaneMachineSet
CR 存在但没有激活。 -
NotFound
表示没有现有的ControlPlaneMachineSet
CR。
-
后续步骤
要使用 control plane 机器集,您必须确保集群有正确设置的 ControlPlaneMachineSet
CR。
- 如果您的集群有一个现有的 CR,您必须验证 CR 中的配置是否正确。
- 如果集群没有现有的 CR,则必须为集群创建一个带有正确配置的 CR。
13.2.3. 激活 control plane 机器集自定义资源
要使用 control plane 机器集,您必须确保集群有正确设置的 ControlPlaneMachineSet
自定义资源 (CR)。在具有生成的 CR 集群中,您必须验证 CR 中的配置对于您的集群是否是正确的,并激活它。
如需有关 CR 中参数的更多信息,请参阅"Control plane 机器集配置"。
流程
运行以下命令,查看 CR 的配置:
$ oc --namespace openshift-machine-api edit controlplanemachineset.machine.openshift.io cluster
- 更改集群配置不正确的字段的值。
当配置正确时,通过将
.spec.state
字段设置为Active
并保存您的更改来激活 CR。重要要激活 CR,您必须在用来更新 CR 配置的同一
oc edit
会话中将.spec.state
字段改为Active
。如果 CR 保存为Inactive
,control plane 机器集生成器会将 CR 重置为其原始设置。
13.2.4. 创建 control plane 机器集自定义资源
要使用 control plane 机器集,您必须确保集群有正确设置的 ControlPlaneMachineSet
自定义资源 (CR)。在没有生成的 CR 的集群中,您必须手动创建 CR 并激活它。
如需有关 CR 的结构和参数的更多信息,请参阅"Control plane 机器集配置"。
流程
使用以下模板创建 YAML 文件:
control plane 机器集 CR YAML 文件模板
apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet metadata: name: cluster namespace: openshift-machine-api spec: replicas: 3 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <cluster_id> 1 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master state: Active 2 strategy: type: RollingUpdate 3 template: machineType: machines_v1beta1_machine_openshift_io machines_v1beta1_machine_openshift_io: failureDomains: platform: <platform> 4 <platform_failure_domains> 5 metadata: labels: machine.openshift.io/cluster-api-cluster: <cluster_id> 6 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master spec: providerSpec: value: <platform_provider_spec> 7
- 1
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。在创建
ControlPlaneMachineSet
CR 时,您必须指定这个值。如果已安装 OpenShift CLI(oc
)软件包,您可以通过运行以下命令来获取基础架构 ID:$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 2
- 指定 Operator 的状态。当状态为
Inactive
时,Operator 无法正常工作。您可以通过将值设置为Active
来激活 Operator。重要在激活 CR 前,您必须确保其配置正确并满足集群要求。
- 3
- 指定集群的更新策略。允许的值是
OnDelete
和RollingUpdate
。默认值为RollingUpdate
。 - 4
- 指定您的云供应商平台名称。允许的值有
AWS
、Azure
和VSphere
。 - 5
- 为集群添加
<platform_failure_domains>
配置。本节的格式和值特定于提供程序。如需更多信息,请参阅您的云供应商的故障域配置示例。注意VMware vSphere 不支持故障域。对于 vSphere 集群,将
<platform_failure_domains>
替换为一个空的failureDomains:
参数。 - 6
- 指定基础架构 ID。
- 7
- 为集群添加
<platform_provider_spec>
配置。本节的格式和值特定于提供程序。如需更多信息,请参阅云供应商的供应商规格示例。
- 请参阅 control plane 机器集 CR 的示例 YAML,并使用适合集群配置的值填充该文件。
- 请参阅云供应商的示例故障域配置和示例供应商规格,并使用适当的值更新您的文件的这些部分。
-
当配置正确时,通过将
.spec.state
字段设置为Active
并保存您的更改来激活 CR。 运行以下命令,从 YAML 文件创建 CR:
$ oc create -f <control_plane_machine_set>.yaml
其中
<control_plane_machine_set>
是包含 CR 配置的 YAML 文件的名称。