12.3. 创建 Cluster API 机器集
您可以创建使用 Cluster API 的机器集来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 部署一个 OpenShift Container Platform 集群。
- 启用集群 API 使用。
-
安装 OpenShift CLI (
oc
) 。 -
以具有
cluster-admin
权限的用户身份登录oc
。
流程
创建一个包含集群自定义资源(CR)的 YAML 文件,并命名为
<cluster_resource_file>.yaml
。如果您不确定要为
<cluster_name>
参数设置哪个值,您可以检查集群中现有 Machine API 机器集的值。要列出 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
要显示特定机器集 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。
运行以下命令来创建集群 CR:
$ oc create -f <cluster_resource_file>.yaml
验证
要确认已创建了集群 CR,请运行以下命令:
$ oc get cluster
输出示例
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m
-
创建包含基础架构 CR 的 YAML 文件,并命名为
<infrastructure_resource_file>.yaml
。 运行以下命令来创建基础架构 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
-
创建包含虚拟机模板 CR 的 YAML 文件,并命名为
<machine_template_resource_file>.yaml
。 运行以下命令来创建虚拟机模板 CR:
$ oc create -f <machine_template_resource_file>.yaml
验证
要确认已创建了机器模板 CR,请运行以下命令:
$ oc get <machine_template_kind>
这里的
<machine_template_kind>
是与您的平台对应的值。输出示例
NAME AGE <template_name> 77m
-
创建一个包含集群集 CR 的 YAML 文件,并命名为
<machine_set_resource_file>.yaml
。 运行以下命令来创建机器集 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
当新机器集可用时,
REPLICAS
和AVAILABLE
值会匹配。如果机器集不可用,请等待几分钟,然后再次运行命令。
验证
要验证机器集是否会根据所需配置创建机器,您可以查看集群中的机器和节点列表。
要查看 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.24.0+284d62a <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.24.0+284d62a <ip_address_3>.<region>.compute.internal Ready worker 7m v1.24.0+284d62a