×

您可以使用Operator Lifecycle Manager升级OpenShift Container Platform 4.17上的容器迁移工具包(MTC)。

您可以通过重新安装旧版容器迁移工具包操作符来升级OpenShift Container Platform 4.5及更早版本上的MTC。

如果您从MTC 1.3版本升级,则必须执行其他步骤来更新MigPlan自定义资源(CR)。

在OpenShift Container Platform 4.17上升级容器迁移工具包

您可以使用Operator Lifecycle Manager升级OpenShift Container Platform 4.17上的容器迁移工具包(MTC)。

使用Operator Lifecycle Manager升级MTC时,必须使用受支持的迁移路径。

迁移路径
  • 从OpenShift Container Platform 3迁移到OpenShift Container Platform 4需要旧版MTC操作符和MTC 1.7.x。

  • 不支持从MTC 1.7.x迁移到MTC 1.8.x。

  • 必须使用MTC 1.7.x迁移任何源为OpenShift Container Platform 4.9或更早版本的内容。

    • 源和目标都必须使用MTC 1.7.x。

  • MTC 1.8.x仅支持从OpenShift Container Platform 4.10或更高版本迁移到OpenShift Container Platform 4.10或更高版本。对于仅涉及4.10及更高版本集群的迁移,可以使用1.7.x或1.8.x。但是,源和目标必须使用相同的MTC版本。

    • 不支持从源MTC 1.7.x迁移到目标MTC 1.8.x。

    • 不支持从源MTC 1.8.x迁移到目标MTC 1.7.x。

    • 支持从源MTC 1.7.x迁移到目标MTC 1.7.x。

    • 支持从源MTC 1.8.x迁移到目标MTC 1.8.x

先决条件
  • 您必须以具有cluster-admin权限的用户身份登录。

步骤
  1. 在OpenShift Container Platform控制台中,导航到**操作符**→**已安装的操作符**。

    挂起升级的操作符将显示**可用升级**状态。

  2. 单击**容器迁移工具包操作符**。

  3. 单击**订阅**选项卡。任何需要批准的升级都将显示在**升级状态**旁边。例如,它可能会显示**1个需要批准**。

  4. 单击**1个需要批准**,然后单击**预览安装计划**。

  5. 查看列出的可用升级资源,然后单击**批准**。

  6. 返回到**操作符→已安装的操作符**页面以监控升级进度。完成后,状态将更改为**成功**和**最新**。

  7. 单击**工作负载**→**Pod**以验证MTC Pod是否正在运行。

将容器迁移工具包升级到1.8.0

要将容器迁移工具包升级到1.8.0,请完成以下步骤。

步骤
  1. 使用以下方法之一确定要用于升级的订阅名称和当前通道

    • 通过运行以下命令确定订阅名称和通道

      $ oc -n openshift-migration get sub
      示例输出
      NAME                                                                         PACKAGE                SOURCE                 CHANNEL
      mtc-operator                                                                 mtc-operator           mtc-operator-catalog   release-v1.7
      redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace   redhat-oadp-operator   mtc-operator-catalog   stable-1.0
    • 或者通过运行以下命令以JSON格式返回订阅名称和通道

      $ oc -n openshift-migration get sub -o json | jq -r '.items[] | { name: .metadata.name, package: .spec.name, channel: .spec.channel }'
      示例输出
      {
        "name": "mtc-operator",
        "package": "mtc-operator",
        "channel": "release-v1.7"
      }
      {
        "name": "redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace",
        "package": "redhat-oadp-operator",
        "channel": "stable-1.0"
      }
  2. 对于每个订阅,通过运行以下命令进行修补以从MTC 1.7通道迁移到MTC 1.8通道

    $ oc -n openshift-migration patch subscription mtc-operator --type merge --patch '{"spec": {"channel": "release-v1.8"}}'
    示例输出
    subscription.operators.coreos.com/mtc-operator patched

将容器迁移工具包1.8.0的OADP 1.0升级到1.2

要将容器迁移工具包1.8.0的OADP 1.0升级到1.2,请完成以下步骤。

步骤
  • 对于每个订阅,通过运行以下命令将OADP操作符从OADP 1.0修补到OADP 1.2

    $ oc -n openshift-migration patch subscription redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace --type merge --patch '{"spec": {"channel":"stable-1.2"}}'

    部分指示用于分别安装MTC和OADP的用户特定返回NAME值。

    示例输出
    subscription.operators.coreos.com/redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace patched

    返回的值类似于redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace,在本例中使用。

    • 如果installPlanApproval参数设置为Automatic,则Operator Lifecycle Manager (OLM)将开始升级过程。

    • 如果installPlanApproval参数设置为Manual,则必须在OLM开始升级之前批准每个installPlan

验证
  1. 通过运行以下命令验证OLM是否已完成OADP和MTC的升级

    $ oc -n openshift-migration get subscriptions.operators.coreos.com mtc-operator -o json | jq '.status | (."state"=="AtLatestKnown")'
  2. 返回true值时,通过运行以下命令验证每个订阅使用的通道

    $ oc -n openshift-migration get sub -o json | jq -r '.items[] | {name: .metadata.name, channel: .spec.channel }'
    示例输出
    {
      "name": "mtc-operator",
      "channel": "release-v1.8"
    }
    {
      "name": "redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace",
      "channel": "stable-1.2"
    }
    Confirm that the `mtc-operator.v1.8.0` and `oadp-operator.v1.2.x` packages are installed by running the following command:
    $ oc -n openshift-migration get csv
    示例输出
    NAME                     DISPLAY                                     VERSION   REPLACES                 PHASE
    mtc-operator.v1.8.0      Migration Toolkit for Containers Operator   1.8.0     mtc-operator.v1.7.13     Succeeded
    oadp-operator.v1.2.2     OADP Operator                               1.2.2     oadp-operator.v1.0.13    Succeeded

在OpenShift Container Platform 4.2到4.5版本上升级容器迁移工具包

您可以通过手动安装旧版容器迁移工具包操作符来升级OpenShift Container Platform 4.2到4.5版本上的容器迁移工具包(MTC)。

先决条件
  • 您必须以具有cluster-admin权限的用户身份登录。

  • 您必须能够访问registry.redhat.io

  • 您必须安装podman

步骤
  1. 使用您的Red Hat客户门户凭据登录到registry.redhat.io,输入以下命令

    $ podman login registry.redhat.io
  2. 输入以下命令下载operator.yml文件:

    $ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7:/operator.yml ./
  3. 输入以下命令替换容器迁移工具操作符:

    $ oc replace --force -f operator.yml
  4. 输入以下命令将migration-operator部署缩放到0以停止部署:

    $ oc scale -n openshift-migration --replicas=0 deployment/migration-operator
  5. 输入以下命令将migration-operator部署缩放到1以启动部署并应用更改:

    $ oc scale -n openshift-migration --replicas=1 deployment/migration-operator
  6. 输入以下命令验证migration-operator是否已升级:

    $ oc -o yaml -n openshift-migration get deployment/migration-operator | grep image: | awk -F ":" '{ print $NF }'
  7. 输入以下命令下载controller.yml文件:

    $ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7):/operator.yml ./
  8. 输入以下命令创建migration-controller对象:

    $ oc create -f controller.yml
  9. 输入以下命令验证MTC pod是否正在运行:

    $ oc get pods -n openshift-migration

将MTC 1.3升级到1.8

如果您正在将容器迁移工具(MTC) 1.3.x版本升级到1.8,则必须更新MigrationController pod正在运行的集群上的MigPlan自定义资源(CR)清单。

因为indirectImageMigrationindirectVolumeMigration参数在MTC 1.3中不存在,所以在1.4版本中的默认值为false,这意味着启用了直接镜像迁移和直接卷迁移。由于未满足直接迁移要求,除非将这些参数值更改为true,否则迁移计划无法达到Ready状态。

  • 从OpenShift Container Platform 3迁移到OpenShift Container Platform 4需要旧版MTC操作符和MTC 1.7.x。

  • 将MTC 1.7.x升级到1.8.x需要手动将OADP通道从stable-1.0更新到stable-1.2,才能成功完成从1.7.x到1.8.x的升级。

先决条件
  • 您必须以具有cluster-admin权限的用户身份登录。

步骤
  1. 登录到MigrationController pod正在运行的集群。

  2. 获取MigPlan CR清单

    $ oc get migplan <migplan> -o yaml -n openshift-migration
  3. 更新以下参数值,并将文件保存为migplan.yaml

    ...
    spec:
      indirectImageMigration: true
      indirectVolumeMigration: true
  4. 替换MigPlan CR清单以应用更改

    $ oc replace -f migplan.yaml -n openshift-migration
  5. 获取更新后的MigPlan CR清单以验证更改

    $ oc get migplan <migplan> -o yaml -n openshift-migration