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 资源,然后迁移它可让您验证迁移过程是否按预期工作。

注意

您只能在支持的基础架构类型中迁移某些资源。

Expand
表 11.4. 支持的资源转换
基础架构计算机器计算机器集机器健康检查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)。

流程

  1. 运行以下命令,识别您要迁移到 Machine API 资源的 Cluster API 资源:

    $ oc get <resource_kind> -n openshift-cluster-api
    Copy to Clipboard Toggle word wrap

    其中 <resource_kind> 是以下值之一:

    machine.cluster.x-k8s.io
    compute 或 control plane 机器的资源类型的完全限定名称。
    machineset.cluster.x-k8s.io
    计算机器设置的资源 kind 的完全限定名称。
  2. 运行以下命令来编辑资源规格:

    $ oc edit <resource_kind>/<resource_name> -n openshift-machine-api
    Copy to Clipboard Toggle word wrap

    其中:

    <resource_kind>
    使用 machine.machine.openshift.io 指定计算机器,使用 machineset.machine.openshift.io 指定计算 机器集
    <resource_name>
    指定与您要迁移到 Machine API 的 Cluster API 资源对应的 Machine API 资源的名称。
  3. 在资源规格中,更新 spec.authoritativeAPI 字段的值:

    apiVersion: machine.openshift.io/v1beta1
    kind: <resource_kind> 
    1
    
    metadata:
      name: <resource_name> 
    2
    
      [...]
    spec:
      authoritativeAPI: MachineAPI 
    3
    
      [...]
    status:
      authoritativeAPI: ClusterAPI 
    4
    
      [...]
    Copy to Clipboard Toggle word wrap
    1
    资源类型因资源类型而异。例如,计算机器集的资源类型是 MachineSet,计算机器的资源类型是 Machine
    2
    要迁移的资源的名称。
    3
    指定希望此资源使用的权威 API。例如,要开始将 Cluster API 资源迁移到 Machine API,请指定 MachineAPI
    4
    当前权威 API 的值。这个值表示当前管理此资源的 API。不要更改规范的这个部分中的值。

验证

  • 运行以下命令检查转换的状态:

    $ oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPI
    Copy to Clipboard Toggle word wrap

    其中:

    <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 字段的值。

Expand
表 11.5. 创建计算机器时的 authoritativeAPI 字段的交互

.spec.authoritativeAPI value

ClusterAPI

ClusterAPI

MachineAPI

MachineAPI

.spec.template.spec.authoritativeAPI value

ClusterAPI

MachineAPI

MachineAPI

ClusterAPI

新计算机器的 authoritativeAPI

ClusterAPI

ClusterAPI

MachineAPI

ClusterAPI

注意

.spec.authoritativeAPI 值为 ClusterAPI 时,Machine API 机器集不具有权威,且不使用 .spec.template.spec.authoritativeAPI 值。因此,唯一使用 Machine API 创建计算机器的组合是 .spec.authoritativeAPI.spec.template.spec.authoritativeAPI 值是 MachineAPI 的位置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat