11.2. Cluster API 入门
Machine API 和 Cluster API 是具有类似资源的不同 API 组。您可以使用这些 API 组自动管理 OpenShift Container Platform 集群中的基础架构资源。
使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
当您安装具有三个 control plane 节点的标准 OpenShift Container Platform 集群时,三个计算节点,并使用默认配置选项时,安装程序会在 openshift-machine-api 命名空间中置备以下基础架构资源
- 管理三台 control plane 机器的 control plane 机器集。
- 管理三台计算机器的一个或多个计算机器集。
- 管理 spot 实例的机器健康检查。
当您安装支持使用 Cluster API 管理基础架构资源的集群时,安装程序会在 openshift-cluster-api 命名空间中置备以下资源:
- 一个集群资源。
- 一个特定于供应商的基础架构集群资源。
在支持将 Machine API 资源迁移到 Cluster API 资源的集群上,双向同步控制器会自动创建这些主资源。如需更多信息,请参阅将 Machine API 资源迁移到集群 API 资源。
11.2.1. 创建 Cluster API 主资源 复制链接链接已复制到粘贴板!
对于不支持将 Machine API 资源迁移到 Cluster API 资源的集群,您必须在 openshift-cluster-api 命名空间中手动创建以下 Cluster API 资源:
- 与计算机器集对应的一个或多个机器模板。
- 管理三台计算机器的一个或多个计算机器集。
11.2.1.1. 创建 Cluster API 机器模板 复制链接链接已复制到粘贴板!
您可以通过创建 YAML 清单文件并使用 OpenShift CLI (oc) 应用它来创建特定于供应商的机器模板资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。
流程
创建一个类似如下的 YAML 文件:此流程使用
<machine_template_resource_file>.yaml作为示例文件名。apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: <machine_template_kind>1 metadata: name: <template_name>2 namespace: openshift-cluster-api spec: template: spec:3 - 1
- 指定机器模板类型。这个值必须与您的平台的值匹配。以下值有效:
Expand 集群基础架构供应商 value Amazon Web Services (AWS)
AWSMachineTemplateGoogle Cloud
GCPMachineTemplateMicrosoft Azure
AzureMachineTemplateRed Hat OpenStack Platform (RHOSP)
OpenStackMachineTemplateVMware vSphere
VSphereMachineTemplate裸机
Metal3MachineTemplate - 2
- 为机器模板指定名称。
- 3
- 指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 机器模板 YAML 示例。
运行以下命令来创建虚拟机模板 CR:
$ oc create -f <machine_template_resource_file>.yaml
验证
运行以下命令确认机器模板 CR 已创建:
$ oc get <machine_template_kind> -n openshift-cluster-api这里的
<machine_template_kind>是与您的平台对应的值。输出示例
NAME AGE <template_name> 77m
11.2.1.2. 创建 Cluster API 计算机器集 复制链接链接已复制到粘贴板!
您可以创建使用集群 API 的计算机器集来动态管理您选择的特定工作负载的机器计算资源。
先决条件
- 您已部署了 OpenShift Container Platform 集群。
- 您已启用了 Cluster API 的使用。
-
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。 - 您已创建了机器模板资源。
流程
创建一个类似如下的 YAML 文件:此流程使用
<machine_set_resource_file>.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:3 # ...运行以下命令来创建计算机器设置 CR:
$ oc create -f <machine_set_resource_file>.yaml运行以下命令确认已创建了计算机器设置 CR:
$ oc get machineset.cluster.x-k8s.io -n openshift-cluster-api输出示例
NAME CLUSTER REPLICAS READY AVAILABLE AGE VERSION <machine_set_name> <cluster_name> 1 1 1 17m当新的计算机器集可用时,
REPLICAS和AVAILABLE值会匹配。如果 compute 机器集不可用,请等待几分钟,然后再次运行命令。
验证
要验证计算机器是否会根据所需配置创建机器,请按照以下步骤查看集群中的机器和节点列表:
查看 Cluster API 机器列表:
$ oc get machine.cluster.x-k8s.io -n 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.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