11.4. Cluster API 机器的配置选项


11.4.1. Amazon Web Services 的集群 API 配置选项

您可以通过更新 Cluster API 自定义资源清单中的值来更改 Amazon Web Services (AWS) 集群 API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

以下示例 YAML 文件显示了 Amazon Web Services 集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      iamInstanceProfile: # ...
      instanceType: m5.large
      ignition:
        storageType: UnencryptedUserData
        version: "3.4"
      ami:
        id: # ...
      subnet:
        filters:
        - name: tag:Name
          values:
          - # ...
      additionalSecurityGroups:
      - filters:
        - name: tag:Name
          values:
          - # ...
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用集群资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: AWSMachineTemplate 
4

        name: <template_name> 
5
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
2 3
指定集群 ID 作为集群的名称。
4
指定机器模板类型。这个值必须与您的平台的值匹配。
5
指定机器模板名称。

您可以通过更新 Cluster API 自定义资源清单中的值来启用以下功能。

11.4.1.2.1. Elastic Fabric Adapter 实例和放置组选项

您可以在现有 AWS 放置组中的 Elastic Fabric Adapter (EFA)实例上部署计算机器。

EFA 实例不需要放置组,您可以使用放置组作为配置 EFA 以外的目的。以下示例将 EFA 和 placement 组一起使用来演示一个配置,该配置可以提高指定 PG 中的机器的网络性能。

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值。然后,配置机器集 YAML 文件,以在部署机器时引用机器模板。

EFA 实例和放置组配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceType: <supported_instance_type> 
1

      networkInterfaceType: efa 
2

      placementGroupName: <placement_group> 
3

      placementGroupPartition: <placement_group_partition_number> 
4

# ...
Copy to Clipboard Toggle word wrap

1
指定 支持 EFAs 的实例类型。
2
指定 efa 网络接口类型。
3
指定要在其中部署机器的现有 AWS 放置组的名称。
4
可选:指定您要部署机器的现有 AWS 放置组的分区号。
注意

确保您创建的放置组类型的规则和限制与预期的用例兼容。

11.4.1.2.2. Amazon EC2 实例元数据服务配置选项

您可以限制 Amazon Web Services (AWS) 集群上机器使用的 Amazon EC2 实例元数据服务 (IMDS) 版本。机器可能需要使用 IMDSv2 (AWS 文档),或者除了 IMDSv2 之外,也允许使用 IMDSv1。

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值。然后,配置机器集 YAML 文件,以在部署机器时引用机器模板。

重要

在创建需要 IMDSv2 的机器前,请确保与 IMDS 交互的工作负载都支持 IMDSv2。

IMDS 配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceMetadataOptions:
        httpEndpoint: enabled
        httpPutResponseHopLimit: 1 
1

        httpTokens: optional 
2

        instanceMetadataTags: disabled
# ...
Copy to Clipboard Toggle word wrap

1
指定 IMDSv2 调用允许的网络跃点数。如果没有指定值,则默认将这个参数设置为 1
2
指定是否需要使用 IMDSv2。如果没有指定值,则默认将此参数设置为 optional。以下值有效:
optional
允许使用 IMDSv1 和 IMDSv2。
required
需要 IMDSv2。
注意

Machine API 不支持 httpEndpoint,httpPutResponseHopLimit, 和 instanceMetadataTags 字段。如果您将使用此功能的 Cluster API 机器模板迁移到 Machine API 计算机器集中,则它创建的任何 Machine API 机器都没有这些字段,底层实例也不会使用这些设置。迁移的机器集管理的任何现有机器都会保留这些字段,底层实例将继续使用这些设置。

需要使用 IMDSv2 可能会导致超时。如需更多信息,包括缓解策略,请参阅 实例元数据访问注意事项 (AWS 文档)。

11.4.1.2.3. 专用实例配置选项

您可以在 Amazon Web Services (AWS) 集群中部署由 Dedicated 实例支持的机器。

专用实例在专用于单一客户的硬件上运行虚拟私有云(VPC)。这些 Amazon EC2 实例在主机硬件级别被物理隔离。Dedicated 实例的隔离也会存在,即使实例属于链接到一个 Forer 帐户的不同 AWS 帐户。但是,其他未专用实例如果属于同一 AWS 帐户,则可以与 Dedicated 实例共享硬件。

OpenShift Container Platform 支持具有公共或专用租期的实例。

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值。然后,配置机器集 YAML 文件,以在部署机器时引用机器模板。

Dedicated 实例配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      tenancy: dedicated 
1

# ...
Copy to Clipboard Toggle word wrap

1
指定使用具有在单租户硬件上运行的专用租期的实例。如果没有指定这个值,则默认使用在共享硬件上运行的公共租期的实例。

您可以在 Amazon Web Services (AWS) 上将机器部署为非保证的 Spot 实例。Spot 实例使用备用 AWS EC2 容量,且比 On-Demand 实例的成本要低。您可以将 Spot 实例用于可容许中断的工作负载,如批处理或无状态工作负载、横向可扩展工作负载。

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值。然后,配置机器集 YAML 文件,以在部署机器时引用机器模板。

重要

AWS EC2 可随时重新声明 Spot 实例的容量。

Spot 实例配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      spotMarketOptions: 
1

        maxPrice: <price_per_hour> 
2

# ...
Copy to Clipboard Toggle word wrap

1
指定 Spot 实例的使用。
2
可选:为 Spot 实例指定小时成本限制。例如,将 <price_per_hour> 值设置为 2.50 将 Spot 实例的成本限制为每小时 USD 2.50。如果没有设置这个值,则最大价格收费会达到按需实例价格。
警告

与使用默认的 On-Demand 实例价格相比,设置特定的 maxPrice: <price_per_hour> 值可能会增加中断的频率。强烈建议您使用默认的 On-Demand 实例价格,且不会为 Spot 实例设置最大价格。

使用 Spot 实例时可能会因为以下原因造成中断:

  • 实例价格超过您的最大价格
  • Spot 实例的需求增加
  • Spot 实例的提供减少

当发生中断时,AWS 会向用户发出两分钟警告信息。当 AWS 发出终止警告时,OpenShift Container Platform 开始从受影响的实例中删除工作负载。

当 AWS 终止实例时,Spot 实例节点上运行的终止处理器会删除机器资源。为了满足计算机器设置 副本数量,计算机器会创建一个请求 Spot 实例的机器。

11.4.1.2.5. 容量保留配置选项

OpenShift Container Platform 版本 4.19 及更新的版本支持 Amazon Web Services 集群上的 Capacity Reservations,包括 ML 的 On-Demand Capacity Reservations 和 Capacity Blocks。

您可以将机器部署到与您定义的容量请求参数匹配的可用资源上。这些参数指定您要保留的实例类型、地区和实例数量。如果您的容量保留可以容纳容量请求,部署会成功。

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值。然后,配置机器集 YAML 文件,以在部署机器时引用机器模板。

容量保留配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      capacityReservationId: <capacity_reservation> 
1

      marketType: <market_type> 
2

# ...
Copy to Clipboard Toggle word wrap

1
指定您要在其上部署机器的 ML 或 On-Demand Capacity Reservation 的 Capacity Block 的 ID。
2
指定要使用的市场类型。以下值有效:
CapacityBlock
将此市场类型与 ML 的 Capacity Blocks 搭配使用。
OnDemand
将此市场类型与 On-Demand Capacity Reservations 搭配使用。
Spot
将此市场类型用于 Spot 实例。这个选项与 Capacity Reservations 不兼容。

如需更多信息,请参阅 AWS 文档中的 ML 的 On-Demand Capacity Reservations 和 Capacity Blocks

11.4.1.2.6. 启用 GPU 的机器选项

您可以在 Amazon Web Services (AWS) 上部署启用了 GPU 的计算机器。以下示例配置使用 AWS G4dn 实例类型,其中包括 NVIDIA Tesla T4 Tensor Core GPU,作为示例。

有关支持的实例类型的更多信息,请参阅 NVIDIA 文档中的以下页面:

要使用您的配置部署计算机器,请在机器模板 YAML 文件中配置适当的值,以及一个在部署机器时引用机器模板的机器集 YAML 文件。

启用 GPU 的机器模板配置示例

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
# ...
spec:
  template:
    spec:
      instanceType: g4dn.xlarge 
1

# ...
Copy to Clipboard Toggle word wrap

1
指定 G4dn 实例类型。

启用 GPU 的机器集配置示例

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <cluster_name>-gpu-<region> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name>
spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <cluster_name>-gpu-<region> 
2

  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <cluster_name>-gpu-<region> 
3

        node-role.kubernetes.io/<role>: ""
# ...
Copy to Clipboard Toggle word wrap

1
指定包含 gpu 角色的名称。名称包含集群 ID 作为前缀,区域作为后缀包含在内。
2
指定与机器集名称匹配的选择器标签。
3
指定与机器集名称匹配的模板标签。

11.4.2. Google Cloud Platform 的集群 API 配置选项

您可以通过更新 Cluster API 自定义资源清单中的值来更改 Google Cloud Platform (GCP) Cluster API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

以下示例 YAML 文件显示了 Google Cloud Platform 集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: GCPMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      rootDeviceType: pd-ssd
      rootDeviceSize: 128
      instanceType: n1-standard-4
      image: projects/rhcos-cloud/global/images/rhcos-411-85-202203181601-0-gcp-x86-64
      subnet: <cluster_name>-worker-subnet
      serviceAccounts:
        email: <service_account_email_address>
        scopes:
          - https://www.googleapis.com/auth/cloud-platform
      additionalLabels:
        kubernetes-io-cluster-<cluster_name>: owned
      additionalNetworkTags:
        - <cluster_name>-worker
      ipForwarding: Disabled
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用集群资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: GCPMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: <failure_domain> 
6
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
2 3
指定集群 ID 作为集群的名称。
4
指定机器模板类型。这个值必须与您的平台的值匹配。
5
指定机器模板名称。
6
指定 GCP 区域中的故障域。

11.4.3. Microsoft Azure 的集群 API 配置选项

您可以通过更新 Cluster API 自定义资源清单中的值来更改 Microsoft Azure Cluster API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

以下示例 YAML 文件显示 Azure 集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: AzureMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      disableExtensionOperations: true
      identity: UserAssigned
      image:
        id: /subscriptions/<subscription_id>/resourceGroups/<cluster_name>-rg/providers/Microsoft.Compute/galleries/gallery_<compliant_cluster_name>/images/<cluster_name>-gen2/versions/latest 
4

      networkInterfaces:
        - acceleratedNetworking: true
          privateIPConfigs: 1
          subnetName: <cluster_name>-worker-subnet
      osDisk:
        diskSizeGB: 128
        managedDisk:
          storageAccountType: Premium_LRS
        osType: Linux
      sshPublicKey: <ssh_key_value>
      userAssignedIdentities:
        - providerID: 'azure:///subscriptions/<subscription_id>/resourcegroups/<cluster_name>-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<cluster_name>-identity'
      vmSize: Standard_D4s_v3
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。
4
指定与实例类型兼容的镜像。安装程序创建的 Hyper-V 生成 V2 镜像具有 -gen2 后缀,而 V1 镜像则与没有后缀的名称相同。
注意

默认 OpenShift Container Platform 集群名称包含连字符 (-),它们与 Azure gallery 名称要求不兼容。此配置中的 <compliant_cluster_name> 的值必须使用下划线 (_),而不是连字符,以符合这些要求。其他 <cluster_name> 实例不会改变。

例如,集群名称 jdoe-test-2m2np 被转换为 jdoe_test_2m2np。本例中 gallery_<compliant_cluster_name> 的完整字符串为 gallery_jdoe_test_2m2np,而不是 gallery_jdoe-test-2m2np。此示例值的 spec.template.spec.image.id 的完整值为 /subscriptions/<subscription_id>/resourceGroups/jdoe-test-2m2np-rg/providers/Microsoft.Compute/galleries/gallery_jdoe_test_2m2np/images/jdoe-test-2m2np-gen2/versions/latest

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用集群资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: AzureMachineTemplate 
3

        name: <template_name> 
4
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
2
指定集群 ID 作为集群的名称。
3
指定机器模板类型。这个值必须与您的平台的值匹配。
4
指定机器模板名称。

您可以通过更新 Cluster API 自定义资源清单中的值来更改 Red Hat OpenStack Platform (RHOSP) Cluster API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

11.4.4.1. 用于配置 RHOSP 集群的 YAML 示例

以下示例 YAML 文件显示 RHOSP 集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OpenStackMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      flavor: <openstack_node_machine_flavor> 
4

      image:
        filter:
          name: <openstack_image> 
5
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。
4
指定要使用的 RHOSP 类别。如需更多信息,请参阅为启动实例创建类别
5
指定要使用的镜像。

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用基础架构资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
spec:
  clusterName: <cluster_name> 
2

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data 
3

      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: OpenStackMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: <nova_availability_zone> 
6
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。
2
指定集群 ID 作为集群的名称。
3
对于 Cluster API 技术预览,Operator 可以使用 openshift-machine-api 命名空间中的 worker 用户数据 secret。
4
指定机器模板类型。这个值必须与您的平台的值匹配。
5
指定机器模板名称。
6
可选:指定要在其中创建机器的机器集的 Nova 可用性区域的名称。如果没有指定值,机器不会限制到特定的可用区。

11.4.5. VMware vSphere 的集群 API 配置选项

您可以通过更新 Cluster API 自定义资源清单中的值来更改 VMware vSphere Cluster API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

11.4.5.1. 用于配置 VMware vSphere 集群的 YAML 示例

以下示例 YAML 文件显示 VMware vSphere 集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: VSphereMachineTemplate 
1

metadata:
  name: <template_name> 
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      template: <vm_template_name> 
4

      server: <vcenter_server_ip> 
5

      diskGiB: 128
      cloneMode: linkedClone 
6

      datacenter: <vcenter_data_center_name> 
7

      datastore: <vcenter_datastore_name> 
8

      folder: <vcenter_vm_folder_path> 
9

      resourcePool: <vsphere_resource_pool> 
10

      numCPUs: 4
      memoryMiB: 16384
      network:
        devices:
        - dhcp4: true
          networkName: "<vm_network_name>" 
11
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。
4
指定要使用的 vSphere 虚拟机模板,如 user-5ddjd-rhcos
5
指定 vCenter 服务器 IP 或完全限定域名。
6
指定要使用的虚拟机克隆类型。以下值有效:
  • fullClone
  • linkedClone

使用 linkedClone 类型时,磁盘大小与克隆源匹配,而不使用 diskGiB 值。如需更多信息,请参阅有关虚拟机克隆类型的 vSphere 文档。

7
指定要部署计算机器集的 vCenter 数据中心。
8
指定要部署计算机器集的 vCenter 数据存储。
9
指定 vCenter 中 vSphere 虚拟机文件夹的路径,如 /dc1/vm/user-inst-5ddjd
10
指定虚拟机的 vSphere 资源池。
11
指定要将计算机器设置为的 vSphere VM 网络。此虚拟机网络必须是集群中其他计算机器所处的位置。

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用集群资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name> 
3

  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/<role>: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: VSphereMachineTemplate 
4

        name: <template_name> 
5

      failureDomain: 
6

        - name: <failure_domain_name>
          region: <region_a>
          zone: <zone_a>
          server: <vcenter_server_name>
          topology:
            datacenter: <region_a_data_center>
            computeCluster: "</region_a_data_center/host/zone_a_cluster>"
            resourcePool: "</region_a_data_center/host/zone_a_cluster/Resources/resource_pool>"
            datastore: "</region_a_data_center/datastore/datastore_a>"
            networks:
            - port-group
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
2 3
指定集群 ID 作为集群的名称。
4
指定机器模板类型。这个值必须与您的平台的值匹配。
5
指定机器模板名称。
6
指定故障域配置详情。
注意

在使用 Cluster API 的 vSphere 集群上使用多个区域(region)和区(zone)是没有经过验证的配置。

11.4.6. 裸机的集群 API 配置选项

您可以通过更新 Cluster API 自定义资源清单中的值来更改裸机集群 API 机器的配置。

重要

使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

11.4.6.1. 用于配置裸机集群的 YAML 示例

以下示例 YAML 文件显示裸机集群的配置。

机器模板资源是特定于提供程序的,定义计算机器创建的机器的基本属性。计算机器设置在创建机器时引用此模板。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate 
1

metadata:
  name: <template_name>  
2

  namespace: openshift-cluster-api
spec:
  template:
    spec: 
3

      customDeploy: install_coreos
      userData:
        name: worker-user-data-managed 
4
Copy to Clipboard Toggle word wrap
1
指定机器模板类型。这个值必须与您的平台的值匹配。
2
为机器模板指定名称。
3
指定您的环境的详情。这里的值为示例。
4
userData 参数引用 Ignition 配置,在安装过程中生成 Machine API Operator。您必须应用 openshift-cluster-api 命名空间,以确保集群可以通过运行以下命令来访问 secret:
$ oc get secret worker-user-data-managed \
  -n openshift-machine-api -o yaml | \
  sed 's/namespace: .*/namespace: openshift-cluster-api/' | oc apply -f -
Copy to Clipboard Toggle word wrap

计算机器设置资源定义它所创建的机器的额外属性。计算机器集也会在创建机器时引用集群资源和机器模板。

apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineSet
metadata:
  name: <machine_set_name> 
1

  namespace: openshift-cluster-api
  labels:
    cluster.x-k8s.io/cluster-name: <cluster_name> 
2

spec:
  clusterName: <cluster_name>
  replicas: 1
  selector:
    matchLabels:
      test: example
      cluster.x-k8s.io/cluster-name: <cluster_name>
      cluster.x-k8s.io/set-name: <machine_set_name>
  template:
    metadata:
      labels:
        test: example
        cluster.x-k8s.io/cluster-name: <cluster_name>
        cluster.x-k8s.io/set-name: <machine_set_name>
        node-role.kubernetes.io/worker: ""
    spec:
      bootstrap:
         dataSecretName: worker-user-data-managed
      clusterName: <cluster_name>
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: Metal3MachineTemplate 
3

        name: <template_name> 
4
Copy to Clipboard Toggle word wrap
1
为计算机器设置指定一个名称。集群 ID、机器角色和区域形成一个典型模式,格式为:<cluster_name>-<role>-<region>
2
指定集群 ID 作为集群的名称。
3
指定机器模板类型。这个值必须与您的平台的值匹配。
4
指定机器模板名称。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat