11.6. 禁用集群 API
要停止使用 Cluster API 来自动管理 OpenShift Container Platform 集群上的基础架构资源,请将集群中的任何 Cluster API 资源转换为等同的 Machine API 资源。
使用集群 API 管理机器只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
11.6.1. 将集群 API 资源迁移到 Machine API 资源 复制链接链接已复制到粘贴板!
在支持在 Machine API 和 Cluster API 资源之间迁移的集群中,双向同步控制器支持将 Cluster API 资源转换为 Machine API 资源。
双向同步控制器仅在启用了 TechPreviewNoUpgrade 功能集中的 MachineAPIMigration 功能门的集群中运行。
您可以将最初从 Machine API 迁移到 Cluster API 的资源,或者最初作为 Cluster API 资源创建的资源。将原始 Machine API 资源迁移到集群 API 资源,然后迁移它可让您验证迁移过程是否按预期工作。
您只能在支持的基础架构类型中迁移某些资源。
| 基础架构 | 计算机器 | 计算机器集 | 机器健康检查 | control plane 机器集 | 集群自动扩展 |
|---|---|---|---|---|---|
| AWS | 技术预览 | 技术预览 | 不可用 | 不可用 | 不可用 |
| 所有其他基础架构类型 | 不可用 | 不可用 | 不可用 | 不可用 | 不可用 |
11.6.1.1. 迁移集群 API 资源以使用 Machine API 复制链接链接已复制到粘贴板!
您可以将单个 Cluster API 对象迁移到等同的 Machine API 对象。
迁移集群 API 资源以使用 Machine API 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
先决条件
- 您已在受支持的基础架构类型上部署了 OpenShift Container Platform 集群。
-
您已在
TechPreviewNoUpgrade功能集中启用了MachineAPIMigration功能门。 -
您可以使用具有
cluster-admin权限的账户访问集群。 -
已安装 OpenShift CLI(
oc)。
流程
运行以下命令,识别您要迁移到 Machine API 资源的 Cluster API 资源:
oc get <resource_kind> -n openshift-cluster-api
$ oc get <resource_kind> -n openshift-cluster-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中
<resource_kind>是以下值之一:machine.cluster.x-k8s.io- compute 或 control plane 机器的资源类型的完全限定名称。
machineset.cluster.x-k8s.io- 计算机器设置的资源 kind 的完全限定名称。
运行以下命令来编辑资源规格:
oc edit <resource_kind>/<resource_name> -n openshift-machine-api
$ oc edit <resource_kind>/<resource_name> -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<resource_kind>-
使用
machine.machine.openshift.io指定计算机器,使用machineset.machine.openshift.io指定计算 机器集 <resource_name>- 指定与您要迁移到 Machine API 的 Cluster API 资源对应的 Machine API 资源的名称。
在资源规格中,更新
spec.authoritativeAPI字段的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令检查转换的状态:
oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPI
$ oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPICopy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<resource_kind>-
使用
machine.machine.openshift.io指定计算机器,使用machineset.machine.openshift.io指定计算 机器集 <resource_name>- 指定与您要迁移到 Machine API 的 Cluster API 资源对应的 Machine API 资源的名称。
-
在转换进行时,这个命令会返回一个
Migrating的值。如果这个值长时间保留,请检查openshift-cluster-api命名空间中的cluster-capi-operator部署的日志以了解更多信息,并识别潜在的问题。 -
转换完成后,这个命令会返回
MachineAPI值。
重要除非要删除使用当前权威 API 的对应资源,否则请不要删除不使用当前权威 API 的非权威资源。
当您删除不使用当前权威 API 的非权威资源时,同步控制器会删除使用当前权威 API 的对应资源。如需更多信息,请参阅故障排除资源迁移中的"取消资源删除行为"。
11.6.1.2. 计算机器的权威 API 类型 复制链接链接已复制到粘贴板!
计算机器的权威 API 取决于创建它的 Machine API 计算机器集中的 .spec.authoritativeAPI 和 .spec.template.spec.authoritativeAPI 字段的值。
|
|
|
|
|
|
|
|
|
|
|
|
|
新计算机器的 |
|
|
|
|
当 .spec.authoritativeAPI 值为 ClusterAPI 时,Machine API 机器集不具有权威,且不使用 .spec.template.spec.authoritativeAPI 值。因此,唯一使用 Machine API 创建计算机器的组合是 .spec.authoritativeAPI 和 .spec.template.spec.authoritativeAPI 值是 MachineAPI 的位置。