13.3. control plane 机器集配置
这些 YAML 文件和片断示例演示了 control plane 机器设置自定义资源 (CR) 的基本结构,以及故障域和供应商规格配置的特定于平台的示例。
13.3.1. control plane 机器集自定义资源的 YAML 示例
ControlPlaneMachineSet
CR 的基础构建方式与所有平台相同。
ControlPlaneMachineSet
CR YAML 文件示例
apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet metadata: name: cluster 1 namespace: openshift-machine-api spec: replicas: 3 2 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <cluster_id> 3 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master state: Active 4 strategy: type: RollingUpdate 5 template: machineType: machines_v1beta1_machine_openshift_io machines_v1beta1_machine_openshift_io: failureDomains: platform: <platform> 6 <platform_failure_domains> 7 metadata: labels: machine.openshift.io/cluster-api-cluster: <cluster_id> machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master spec: providerSpec: value: <platform_provider_spec> 8
- 1
- 指定
ControlPlaneMachineSet
CR 的名称,即集群
。不要更改这个值。 - 2
- 指定 control plane 机器的数量。仅支持具有三个 control plane 机器的集群,因此
replicas
值为3
。不支持水平扩展。不要更改这个值。 - 3
- 指定基于置备集群时所设置的集群 ID 的基础架构 ID。在创建
ControlPlaneMachineSet
CR 时,您必须指定这个值。如果已安装 OpenShift CLI(oc
)软件包,您可以通过运行以下命令来获取基础架构 ID:$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
- 4
- 指定 Operator 的状态。当状态为
Inactive
时,Operator 无法正常工作。您可以通过将值设置为Active
来激活 Operator。重要在激活 Operator 前,您必须确保
ControlPlaneMachineSet
CR 配置适合您的集群要求。有关激活 Control Plane Machine Set Operator 的更多信息,请参阅"使用 control plane 机器集入门"。 - 5
- 指定集群的更新策略。允许的值是
OnDelete
和RollingUpdate
。默认值为RollingUpdate
。有关更新策略的更多信息,请参阅"更新 control plane 配置"。 - 6
- 指定云供应商平台名称。不要更改这个值。
- 7
- 为集群指定
<platform_failure_domains>
配置。本节的格式和值特定于提供程序。如需更多信息,请参阅您的云供应商的故障域配置示例。注意VMware vSphere 不支持故障域。
- 8
- 为集群指定
<platform_provider_spec>
配置。本节的格式和值特定于提供程序。如需更多信息,请参阅云供应商的供应商规格示例。
特定于供应商的配置
control plane 机器集资源的 <platform_provider_spec>
和 <platform_failure_domains>
部分是特定于供应商的。请参阅集群的 YAML 示例:
13.3.2. 用于配置 Amazon Web Services 集群的 YAML 示例
control plane 机器集 CR 的一些部分是特定于供应商的。本节中的 YAML 示例显示 Amazon Web Services (AWS) 集群的故障域和供应商规格配置。
13.3.2.1. AWS 故障域配置示例
故障域的 control plane 机器集概念与现有 可用区(AZ) 的 AWS 概念类似。ControlPlaneMachineSet
CR 尽可能将 control plane 机器分散到多个故障域中。
在 control plane 机器集中配置 AWS 故障域时,您必须指定可用区名称和要使用的子网。
AWS 故障域值示例
failureDomains: aws: - placement: availabilityZone: <aws_zone_a> 1 subnet: 2 filters: - name: tag:Name values: - <cluster_id>-private-<aws_zone_a> 3 type: Filters 4 - placement: availabilityZone: <aws_zone_b> 5 subnet: filters: - name: tag:Name values: - <cluster_id>-private-<aws_zone_b> 6 type: Filters platform: AWS 7
13.3.2.2. AWS 供应商规格示例
当您为现有集群创建 control plane 机器集时,供应商规格必须与安装程序创建的 control plane machine
CR 中的 providerSpec
配置匹配。您可以省略 CR 的故障域部分中设置的任何字段。
在以下示例中,<cluster_id>
是基础架构 ID,它基于您在置备集群时设定的集群 ID。如果已安装 OpenShift CLI,您可以通过运行以下命令来获取基础架构 ID:
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
AWS providerSpec
值示例
providerSpec: value: ami: id: ami-<ami_id_string> 1 apiVersion: machine.openshift.io/v1beta1 blockDevices: - ebs: 2 encrypted: true iops: 0 kmsKey: arn: "" volumeSize: 120 volumeType: gp3 credentialsSecret: name: aws-cloud-credentials 3 deviceIndex: 0 iamInstanceProfile: id: <cluster_id>-master-profile 4 instanceType: m6i.xlarge 5 kind: AWSMachineProviderConfig 6 loadBalancers: 7 - name: <cluster_id>-int type: network - name: <cluster_id>-ext type: network metadata: creationTimestamp: null metadataServiceOptions: {} placement: 8 region: <region> 9 securityGroups: - filters: - name: tag:Name values: - <cluster_id>-master-sg 10 subnet: {} 11 userDataSecret: name: master-user-data 12
- 1
- 指定集群的 Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Images (AMI) ID。AMI 必须与集群属于同一区域。如果要使用 AWS Marketplace 镜像,则必须从 AWS Marketplace 完成 OpenShift Container Platform 订阅来获取您所在地区的 AMI ID。
- 2
- 指定加密的 EBS 卷的配置。
- 3
- 指定集群的 secret 名称。不要更改这个值。
- 4
- 指定 AWS Identity and Access Management (IAM )实例配置集。不要更改这个值。
- 5
- 为 control plane 指定 AWS 实例类型。
- 6
- 指定云供应商平台类型。不要更改这个值。
- 7
- 指定集群的内部 (
int
) 和外部 (ext
) 负载均衡器。 - 8
- 此参数在故障域中配置,此处显示了一个空值。如果为此参数指定的值与故障域中的值不同,Operator 会使用故障域中的值覆盖它。
- 9
- 指定集群的 AWS 区域。
- 10
- 指定 control plane 机器安全组。
- 11
- 此参数在故障域中配置,此处显示了一个空值。如果为此参数指定的值与故障域中的值不同,Operator 会使用故障域中的值覆盖它。
- 12
- 指定 control plane 用户数据 secret。不要更改这个值。
13.3.3. 用于配置 Microsoft Azure 集群的 YAML 示例
control plane 机器集 CR 的一些部分是特定于供应商的。本节中的 YAML 示例显示 Azure 集群的故障域和供应商规格配置。
13.3.3.1. Azure 故障域配置示例
故障域的 control plane 机器集概念与 Azure 可用区的现有 Azure 概念类似。ControlPlaneMachineSet
CR 尽可能将 control plane 机器分散到多个故障域中。
在 control plane 机器集中配置 Azure 故障域时,您必须指定可用区名称。
Azure 故障域值示例
failureDomains: azure: 1 - zone: "1" - zone: "2" - zone: "3" platform: Azure 2
13.3.3.2. Azure 供应商规格示例
当您为现有集群创建 control plane 机器集时,供应商规格必须与安装程序创建的 control plane Machine
CR 中的 providerSpec
配置匹配。您可以省略 CR 的故障域部分中设置的任何字段。
在以下示例中,<cluster_id>
是基础架构 ID,它基于您在置备集群时设定的集群 ID。如果已安装 OpenShift CLI,您可以通过运行以下命令来获取基础架构 ID:
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Azure providerSpec
值示例
providerSpec: value: acceleratedNetworking: true apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: azure-cloud-credentials 1 namespace: openshift-machine-api diagnostics: {} image: 2 offer: "" publisher: "" resourceID: /resourceGroups/<cluster_id>-rg/providers/Microsoft.Compute/galleries/gallery_<cluster_id>/images/<cluster_id>-gen2/versions/412.86.20220930 3 sku: "" version: "" internalLoadBalancer: <cluster_id>-internal 4 kind: AzureMachineProviderSpec 5 location: <region> 6 managedIdentity: <cluster_id>-identity metadata: creationTimestamp: null name: <cluster_id> networkResourceGroup: <cluster_id>-rg osDisk: 7 diskSettings: {} diskSizeGB: 1024 managedDisk: storageAccountType: Premium_LRS osType: Linux publicIP: false publicLoadBalancer: <cluster_id> 8 resourceGroup: <cluster_id>-rg subnet: <cluster_id>-master-subnet 9 userDataSecret: name: master-user-data 10 vmSize: Standard_D8s_v3 vnet: <cluster_id>-vnet zone: "" 11
- 1
- 指定集群的 secret 名称。不要更改这个值。
- 2
- 指定 control plane 机器集的镜像详情。
- 3
- 指定与实例类型兼容的镜像。安装程序创建的 Hyper-V 生成 V2 镜像具有
-gen2
后缀,而 V1 镜像则与没有后缀的名称相同。 - 4
- 指定 control plane 的内部负载均衡器。此字段可能无法预先配置,但在
ControlPlaneMachineSet
和 control planeMachine
CR 中都是必需的。 - 5
- 指定云供应商平台类型。不要更改这个值。
- 6
- 指定要放置 control plane 机器的区域。
- 7
- 指定 control plane 的磁盘配置。
- 8
- 指定 control plane 的公共负载均衡器。
- 9
- 指定 control plane 的子网。
- 10
- 指定 control plane 用户数据 secret。不要更改这个值。
- 11
- 此参数在故障域中配置,此处显示了一个空值。如果为此参数指定的值与故障域中的值不同,Operator 会使用故障域中的值覆盖它。
13.3.4. 用于配置 VMware vSphere 集群的 YAML 示例
control plane 机器集 CR 的一些部分是特定于供应商的。本节中的 YAML 示例显示 VMware vSphere 集群的供应商规格配置。
13.3.4.1. vSphere 供应商规格示例
当您为现有集群创建 control plane 机器集时,供应商规格必须与安装程序创建的 control plane machine
CR 中的 providerSpec
配置匹配。
vSphere providerSpec
值示例
providerSpec: value: apiVersion: machine.openshift.io/v1beta1 credentialsSecret: name: vsphere-cloud-credentials 1 diskGiB: 120 2 kind: VSphereMachineProviderSpec 3 memoryMiB: 16384 4 metadata: creationTimestamp: null network: 5 devices: - networkName: <vm_network_name> numCPUs: 4 6 numCoresPerSocket: 4 7 snapshot: "" template: <vm_template_name> 8 userDataSecret: name: master-user-data 9 workspace: datacenter: <vcenter_datacenter_name> 10 datastore: <vcenter_datastore_name> 11 folder: <path_to_vcenter_vm_folder> 12 resourcePool: <vsphere_resource_pool> 13 server: <vcenter_server_ip> 14
- 1
- 指定集群的 secret 名称。不要更改这个值。
- 2
- 指定 control plane 机器的 VM 磁盘大小。
- 3
- 指定云供应商平台类型。不要更改这个值。
- 4
- 指定为 control plane 机器分配的内存。
- 5
- 指定在其上部署 control plane 的网络。
- 6
- 指定为 control plane 机器分配的 CPU 数量。
- 7
- 指定每个 control plane CPU 的内核数。
- 8
- 指定要使用的 vSphere 虚拟机模板,如
user-5ddjd-rhcos
。 - 9
- 指定 control plane 用户数据 secret。不要更改这个值。
- 10
- 指定 control plane 的 vCenter Datacenter。
- 11
- 为 control plane 指定 vCenter Datastore。
- 12
- 指定 vCenter 中 vSphere 虚拟机文件夹的路径,如
/dc1/vm/user-inst-5ddjd
。 - 13
- 指定虚拟机的 vSphere 资源池。
- 14
- 指定 vCenter 服务器 IP 或完全限定域名。