搜索

9.4.6. 使用 MTC API 执行 Kubernetes 对象的状态迁移

download PDF

迁移所有 PV 数据后,您可以使用 Migration Toolkit for Containers(MTC)API 执行组成应用程序的 Kubernetes 对象的一次性状态迁移。

您可以通过配置 MigPlan 自定义资源(CR)字段来提供一个带有额外标签选择器的 Kubernetes 资源列表来进一步过滤这些资源,然后通过创建 MigMigration CR 来执行迁移。MigPlan 资源在迁移后关闭。

注意

选择 Kubernetes 资源是一个仅限 API 的功能。您必须更新 MigPlan CR,并使用 CLI 为它创建一个 MigMigration CR。MTC web 控制台不支持迁移 Kubernetes 对象。

注意

迁移后,MigPlan CR 的 closed 参数被设置为 true。您不能为此 MigPlan CR 创建另一个 MigMigration CR。

使用以下选项之一将 Kubernetes 对象添加到 MigPlan CR 中:

  • 将 Kubernetes 对象添加到 includeResources 部分。当 MigPlan CR 中指定 includedResources 字段时,计划会将 group-kind 的列表作为输入。只有列表中显示的资源才会包含在迁移中。
  • 添加可选的 labelSelector 参数,以过滤 MigPlan 中的 includedResources。当指定此字段时,迁移中仅包含与标签选择器匹配的资源。例如,您可以使用标签 app: frontend 作为过滤器来过滤 SecretConfigMap 资源列表。

流程

  1. 更新 MigPlan CR,使其包含 Kubernetes 资源,并可选择性地通过添加 labelSelector 参数来过滤包含的资源:

    1. 更新 MigPlan CR 使其包含 Kubernetes 资源:

      apiVersion: migration.openshift.io/v1alpha1
      kind: MigPlan
      metadata:
        name: <migplan>
        namespace: openshift-migration
      spec:
        includedResources:
        - kind: <kind> 1
          group: ""
        - kind: <kind>
          group: ""
      1
      指定 Kubernetes 对象,如 SecretConfigMap
    2. 可选:要通过添加 labelSelector 参数来过滤包含的资源:

      apiVersion: migration.openshift.io/v1alpha1
      kind: MigPlan
      metadata:
        name: <migplan>
        namespace: openshift-migration
      spec:
        includedResources:
        - kind: <kind> 1
          group: ""
        - kind: <kind>
          group: ""
      ...
        labelSelector:
          matchLabels:
            <label> 2
      1
      指定 Kubernetes 对象,如 SecretConfigMap
      2
      指定要迁移的资源标签,如 app: frontend
  2. 创建一个 MigMigration CR 来迁移所选 Kubernetes 资源。验证 migPlanRef 引用了了正确的 MigPlan

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      generateName: <migplan>
      namespace: openshift-migration
    spec:
      migPlanRef:
        name: <migplan>
        namespace: openshift-migration
      stage: false
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.