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-api
Copy 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-api
Copy 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.authoritativeAPI
Copy 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
的位置。