12.3. 创建 Cluster API 计算机器集

您可以创建使用集群 API 的计算机器集来动态管理您选择的特定工作负载的机器计算资源。

先决条件

  • 部署一个 OpenShift Container Platform 集群。
  • 启用集群 API 使用。
  • 安装 OpenShift CLI (oc) 。
  • 以具有 cluster-admin 权限的用户身份登录 oc

流程

  1. 创建一个包含集群自定义资源(CR)的 YAML 文件,并命名为 <cluster_resource_file>.yaml

    如果您不确定要为 <cluster_name> 参数设置哪个值,您可以检查集群中现有 Machine API 计算机器集的值。

    1. 要列出 Machine API 计算机器集,请运行以下命令:

      $ oc get machinesets -n openshift-machine-api 1
      1
      指定 openshift-machine-api 命名空间。

      输出示例

      NAME                                DESIRED   CURRENT   READY   AVAILABLE   AGE
      agl030519-vplxk-worker-us-east-1a   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1b   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1c   1         1         1       1           55m
      agl030519-vplxk-worker-us-east-1d   0         0                             55m
      agl030519-vplxk-worker-us-east-1e   0         0                             55m
      agl030519-vplxk-worker-us-east-1f   0         0                             55m

    2. 要显示特定计算机器集 CR 的内容,请运行以下命令:

      $ oc get machineset <machineset_name> \
      -n openshift-machine-api \
      -o yaml

      输出示例

      ...
      template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: agl030519-vplxk 1
              machine.openshift.io/cluster-api-machine-role: worker
              machine.openshift.io/cluster-api-machine-type: worker
              machine.openshift.io/cluster-api-machineset: agl030519-vplxk-worker-us-east-1a
      ...

      1
      用于 <cluster_name> 参数的集群 ID。
  2. 运行以下命令来创建集群 CR:

    $ oc create -f <cluster_resource_file>.yaml

    验证

    要确认已创建了集群 CR,请运行以下命令:

    $ oc get cluster

    输出示例

    NAME           PHASE        AGE  VERSION
    <cluster_name> Provisioning 4h6m

  3. 创建包含基础架构 CR 的 YAML 文件,并命名为 <infrastructure_resource_file>.yaml
  4. 运行以下命令来创建基础架构 CR:

    $ oc create -f <infrastructure_resource_file>.yaml

    验证

    要确认已创建了基础架构 CR,请运行以下命令:

    $ oc get <infrastructure_kind>

    其中 <infrastructure_kind> 是与您的平台对应的值。

    输出示例

    NAME           CLUSTER        READY VPC BASTION IP
    <cluster_name> <cluster_name> true

  5. 创建包含虚拟机模板 CR 的 YAML 文件,并命名为 <machine_template_resource_file>.yaml
  6. 运行以下命令来创建虚拟机模板 CR:

    $ oc create -f <machine_template_resource_file>.yaml

    验证

    要确认已创建了机器模板 CR,请运行以下命令:

    $ oc get <machine_template_kind>

    这里的 <machine_template_kind> 是与您的平台对应的值。

    输出示例

    NAME            AGE
    <template_name> 77m

  7. 创建一个包含计算机器设置 CR 的 YAML 文件,并命名为 <machine_set_resource_file>.yaml
  8. 运行以下命令来创建计算机器设置 CR:

    $ oc create -f <machine_set_resource_file>.yaml

    验证

    要确认已创建了计算机器设置 CR,请运行以下命令:

    $ oc get machineset -n openshift-cluster-api 1
    1
    指定 openshift-cluster-api 命名空间。

    输出示例

    NAME               CLUSTER        REPLICAS READY AVAILABLE AGE VERSION
    <machine_set_name> <cluster_name> 1        1     1         17m

    当新的计算机器集可用时,REPLICASAVAILABLE 值会匹配。如果 compute 机器集不可用,请等待几分钟,然后再次运行命令。

验证

  • 要验证计算机器是否会根据所需配置创建机器,您可以查看集群中的机器和节点列表。

    • 要查看 Cluster API 机器列表,请运行以下命令:

      $ oc get machine -n openshift-cluster-api 1
      1
      指定 openshift-cluster-api 命名空间。

      输出示例

      NAME                           CLUSTER        NODENAME                               PROVIDERID    PHASE   AGE   VERSION
      <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23s

    • 要查看节点列表,请运行以下命令:

      $ oc get node

      输出示例

      NAME                                     STATUS ROLES  AGE   VERSION
      <ip_address_1>.<region>.compute.internal Ready  worker 5h14m v1.25.0
      <ip_address_2>.<region>.compute.internal Ready  master 5h19m v1.25.0
      <ip_address_3>.<region>.compute.internal Ready  worker 7m    v1.25.0