10.4.6. 使用 MTC API 执行 Kubernetes 对象的状态迁移
迁移所有 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
作为过滤器来过滤Secret
和ConfigMap
资源列表。
流程
更新
MigPlan
CR,使其包含 Kubernetes 资源,并可选择性地通过添加labelSelector
参数来过滤包含的资源:更新
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 对象,如
Secret
或ConfigMap
。
可选:要通过添加
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
创建一个
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