13.2. Cluster API 入门
使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
对于 Cluster API 技术预览,您必须创建 Cluster API 需要的主要资源。
13.2.1. 创建 Cluster API 主资源 复制链接链接已复制到粘贴板!
要创建 Cluster API 主资源,您必须获取集群 ID 值,用于集群资源清单中的 <cluster_name> 参数。
13.2.1.1. 获取集群 ID 值 复制链接链接已复制到粘贴板!
您可以使用 OpenShift CLI (oc) 来查找集群 ID 值。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令来获取集群 ID 的值:
oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}'$ oc get infrastructure cluster \ -o jsonpath='{.status.infrastructureName}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它们来手动创建 Cluster API 主资源。
13.2.1.2. 创建 Cluster API 集群资源 复制链接链接已复制到粘贴板!
您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用来创建集群资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 有集群 ID 值。
流程
创建一个类似如下的 YAML 文件:此流程使用
<cluster_resource_file>.yaml作为示例文件名。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建集群 CR:
oc create -f <cluster_resource_file>.yaml
$ oc create -f <cluster_resource_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令确认集群 CR 已存在:
oc get cluster
$ oc get clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当
PHASE的值为Provisioned时,代表集群资源已就绪。
13.2.1.3. 创建 Cluster API 基础架构资源 复制链接链接已复制到粘贴板!
您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建特定于供应商的基础架构资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 有集群 ID 值。
- 您已创建了并应用集群资源。
流程
创建一个类似如下的 YAML 文件:此流程使用
<infrastructure_resource_file>.yaml作为示例文件名。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
apiVersion因平台而异。如需更多信息,请参阅您的供应商的 Cluster API 基础架构资源 YAML 示例。以下值有效:-
infrastructure.cluster.x-k8s.io/v1beta2: Amazon Web Services (AWS) 集群使用的版本。 -
infrastructure.cluster.x-k8s.io/v1beta1:Google Cloud、Red Hat OpenStack Platform (RHOSP)和 VMware vSphere 集群使用的版本。
-
- 2
- 指定集群的基础架构类型。这个值必须与您的平台的值匹配。以下值有效:
Expand 集群云供应商 value Amazon Web Services (AWS)
AWSClusterGoogle Cloud
GCPClusterRed Hat OpenStack Platform(RHOSP)
OpenStackClusterVMware vSphere
VSphereCluster - 3
- 指定集群的名称。
- 4
- 指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 基础架构资源 YAML 示例。
运行以下命令来创建基础架构 CR:
oc create -f <infrastructure_resource_file>.yaml
$ oc create -f <infrastructure_resource_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
要确认已创建了基础架构 CR,请运行以下命令:
oc get <infrastructure_kind>
$ oc get <infrastructure_kind>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<infrastructure_kind>是与您的平台对应的值。输出示例
NAME CLUSTER READY <cluster_name> <cluster_name> true
NAME CLUSTER READY <cluster_name> <cluster_name> trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此输出可能包含特定于您的云供应商的其他列。
13.2.1.4. 创建 Cluster API 机器模板 复制链接链接已复制到粘贴板!
您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建特定于供应商的机器模板资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 您已创建了并应用集群和基础架构资源。
流程
创建一个类似如下的 YAML 文件:此流程使用
<machine_template_resource_file>.yaml作为示例文件名。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定机器模板类型。这个值必须与您的平台的值匹配。以下值有效:
Expand 集群云供应商 value Amazon Web Services (AWS)
AWSMachineTemplateGoogle Cloud
GCPMachineTemplateRed Hat OpenStack Platform(RHOSP)
OpenStackMachineTemplateVMware vSphere
VSphereMachineTemplate - 2
- 为机器模板指定名称。
- 3
- 指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 机器模板 YAML 示例。
运行以下命令来创建虚拟机模板 CR:
oc create -f <machine_template_resource_file>.yaml
$ oc create -f <machine_template_resource_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令确认机器模板 CR 已创建:
oc get <machine_template_kind>
$ oc get <machine_template_kind>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这里的
<machine_template_kind>是与您的平台对应的值。输出示例
NAME AGE <template_name> 77m
NAME AGE <template_name> 77mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
13.2.1.5. 创建 Cluster API 计算机器集 复制链接链接已复制到粘贴板!
您可以创建使用集群 API 的计算机器集来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 您已创建了集群、基础架构和机器模板资源。
流程
创建一个类似如下的 YAML 文件:此流程使用
<machine_set_resource_file>.yaml作为示例文件名。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建计算机器设置 CR:
oc create -f <machine_set_resource_file>.yaml
$ oc create -f <machine_set_resource_file>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认已创建了计算机器设置 CR:
oc get machineset -n openshift-cluster-api
$ oc get machineset -n openshift-cluster-api1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定
openshift-cluster-api命名空间。
输出示例
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当新的计算机器集可用时,
REPLICAS和AVAILABLE值会匹配。如果 compute 机器集不可用,请等待几分钟,然后再次运行命令。
验证
要验证计算机器是否会根据所需配置创建机器,请按照以下步骤查看集群中的机器和节点列表:
查看 Cluster API 机器列表:
oc get machine -n openshift-cluster-api
$ oc get machine -n openshift-cluster-api1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
NAME CLUSTER NODENAME PROVIDERID PHASE AGE VERSION <machine_set_name>-<string_id> <cluster_name> <ip_address>.<region>.compute.internal <provider_id> Running 8m23sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看节点列表:
oc get node
$ oc get nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS ROLES AGE VERSION <ip_address_1>.<region>.compute.internal Ready worker 5h14m v1.28.5 <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.28.5 <ip_address_3>.<region>.compute.internal Ready worker 7m v1.28.5
NAME STATUS ROLES AGE VERSION <ip_address_1>.<region>.compute.internal Ready worker 5h14m v1.28.5 <ip_address_2>.<region>.compute.internal Ready master 5h19m v1.28.5 <ip_address_3>.<region>.compute.internal Ready worker 7m v1.28.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow