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>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 运行以下命令确认集群 CR 已存在: - oc get cluster - $ oc get cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m - NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m- Copy 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>.yaml- Copy 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> true- Copy 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>.yaml- Copy 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> 77m- Copy 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>.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令确认已创建了计算机器设置 CR: - oc get machineset -n openshift-cluster-api - $ oc get machineset -n openshift-cluster-api- 1 - 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 17m- Copy 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-api- 1 - 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 8m23s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看节点列表: - oc get node - $ oc get node- Copy 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.5- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow