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}'
您可以通过创建 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
作为示例文件名。apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: <cluster_name> 1 namespace: openshift-cluster-api spec: infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: <infrastructure_kind> 2 name: <cluster_name> namespace: openshift-cluster-api
运行以下命令来创建集群 CR:
$ oc create -f <cluster_resource_file>.yaml
验证
运行以下命令确认集群 CR 已存在:
$ oc get cluster
输出示例
NAME PHASE AGE VERSION <cluster_name> Provisioning 4h6m
当
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
作为示例文件名。apiVersion: infrastructure.cluster.x-k8s.io/<version> 1 kind: <infrastructure_kind> 2 metadata: name: <cluster_name> 3 namespace: openshift-cluster-api spec: 4
- 1
apiVersion
因平台而异。如需更多信息,请参阅您的供应商的 Cluster API 基础架构资源 YAML 示例。以下值有效:-
infrastructure.cluster.x-k8s.io/v1beta2
: Amazon Web Services (AWS) 集群使用的版本。 -
infrastructure.cluster.x-k8s.io/v1beta1
:Google Cloud Platform (GCP) 和 VMware vSphere 集群使用的版本。
-
- 2
- 指定集群的基础架构类型。这个值必须与您的平台的值匹配。以下值有效:
-
AWSCluster
:集群在 AWS 上运行。 -
GCPCluster
:集群在 GCP 上运行。 -
VSphereCluster
:集群在 vSphere 上运行。
-
- 3
- 指定集群的名称。
- 4
- 指定您的环境的详情。这些参数特定于具体的供应商。如需更多信息,请参阅您的供应商的 Cluster API 基础架构资源 YAML 示例。
运行以下命令来创建基础架构 CR:
$ oc create -f <infrastructure_resource_file>.yaml
验证
要确认已创建了基础架构 CR,请运行以下命令:
$ oc get <infrastructure_kind>
其中
<infrastructure_kind>
是与您的平台对应的值。输出示例
NAME CLUSTER READY <cluster_name> <cluster_name> true
注意此输出可能包含特定于您的云供应商的其他列。
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
作为示例文件名。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
运行以下命令来创建虚拟机模板 CR:
$ oc create -f <machine_template_resource_file>.yaml
验证
运行以下命令确认机器模板 CR 已创建:
$ oc get <machine_template_kind>
这里的
<machine_template_kind>
是与您的平台对应的值。输出示例
NAME AGE <template_name> 77m
13.2.1.5. 创建 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 -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
值会匹配。如果 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.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