×

使用集群 API 管理机器仅为技术预览功能。技术预览功能不受 Red Hat 生产服务等级协议 (SLA) 的支持,可能功能不完整。Red Hat 不建议在生产环境中使用它们。这些功能可让客户抢先体验即将推出的产品功能,从而能够在开发过程中测试功能并提供反馈。

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

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

VMware vSphere 集群配置示例 YAML 文件

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

VMware vSphere 上 Cluster API 基础架构资源的示例 YAML 文件

基础架构资源是特定于提供程序的,它定义了集群中所有计算机器集共享的属性,例如区域和子网。计算机器集在创建机器时会引用此资源。

apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: VSphereCluster (1)
metadata:
  name: <cluster_name> (2)
spec:
  controlPlaneEndpoint: (3)
    host: <control_plane_endpoint_address>
    port: 6443
  identityRef:
    kind: Secret
    name: <cluster_name>
  server: <vsphere_server> (4)
1 指定集群的基础架构类型。此值必须与您平台的值匹配。
2 将集群 ID 指定为集群的名称。
3 指定控制平面端点的 IP 地址和用于访问它的端口。
4 指定集群的 vSphere 服务器。您可以通过运行以下命令在现有 vSphere 集群上找到此值
$ oc get infrastructure cluster \
  -o jsonpath="{.spec.platformSpec.vsphere.vcenters[0].server}"

VMware vSphere 上 Cluster API 机器模板资源的示例 YAML 文件

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

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)
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 虚拟机网络。此虚拟机网络必须是集群中其他计算机器所在的网络。

VMware vSphere 上 Cluster API 计算机器集资源的示例 YAML 文件

计算机器集资源定义了其创建的机器的其他属性。计算机器集在创建机器时还会引用基础架构资源和机器模板。

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
  template:
    metadata:
      labels:
        test: example
    spec:
      bootstrap:
         dataSecretName: worker-user-data (3)
      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
1 指定计算机器集的名称。
2 将集群 ID 指定为集群的名称。
3 对于 Cluster API 技术预览版,操作员可以使用 openshift-machine-api 命名空间中的 worker 用户数据密钥。
4 指定机器模板类型。此值必须与您平台的值匹配。
5 指定机器模板名称。
6 指定故障域配置详细信息。

在使用 Cluster API 的 vSphere 集群上使用多个区域和区域不是经过验证的配置。