第 2 章 把 OpenShift Container Platform 4.1 迁移到 4.2

2.1. 将应用程序工作负载从 OpenShift Container Platform 4.1 迁移到 4.2

您可以使用 Cluster Application Migration (CAM) 工具将应用程序工作负载从 OpenShift Container Platform 4.1 迁移到 4.2。使用 CAM 工具,您可以控制迁移并最小化应用程序的停机时间。

CAM 工具的 web 控制台和 API,基于 Kubernetes 自定义资源,您可以按照命名空间迁移有状态及无状态的应用程序工作负载。

2.1.1. 迁移先决条件

  • 需要在所有集群中都有 cluster-admin 权限。
  • 源和目标集群必须有对复制存储库的不受限制的网络访问权限。
  • 安装 Migration controller 的集群必须具有对其他集群的不受限制的访问权限。
  • 如果应用程序使用 openshift 命名空间中的镜像,则目标集群中必须有所需的镜像版本。

    如果没有所需的镜像,您必须更新 imagestreamtags 的引用以使用与应用程序兼容的可用版本。如果无法更新 imagestreamtags,您可以手动将相关的镜像上传到应用程序命名空间中,并更新应用程序以引用它们。

    以下 imagestreamtags 已从 OpenShift Container Platform 4.2 中删除

    • dotnet:1.0, dotnet:1.1, dotnet:2.0
    • dotnet-runtime:2.0
    • mariadb:10.1
    • mongodb:2.4mongodb:2.6
    • mysql:5.5mysql:5.6
    • nginx:1.8
    • nodejs:0.10nodejs:4nodejs:6
    • perl:5.16perl:5.20
    • php:5.5php:5.6
    • postgresql:9.2, postgresql:9.4, postgresql:9.5
    • python:3.3python:3.4
    • ruby:2.0ruby:2.2

2.1.2. 了解集群应用程序迁移工具

集群应用程序迁移 (CAM) 工具可让您使用 CAM web 控制台或 Kubernetes API 将 OpenShift Container Platform 源集群中的 Kubernetes 资源、持久性卷数据和内部容器镜像迁移到 OpenShift Container Platform 4.2 目标集群。

使用 CAM web 控制台迁移应用程序涉及以下步骤:

  1. 在所有集群中安装 Cluster Application Migration Operator

    注意

    Cluster Application Migration Operator 默认在目标集群上安装 CAM 工具(CAM web 控制台和迁移控制器)。您可以 在 OpenShift Container Platform 3 和远程集群中安装 CAM 工具

  2. 配置复制存储库,这是 CAM 工具用来迁移数据的中间对象存储
  3. 在 CAM web 控制台中添加源集群
  4. 在 CAM web 控制台中添加复制存储库
  5. 创建迁移计划,包含以下数据迁移选项之一:

    • Copy:CAM 工具将数据从源集群复制到复制存储库,再从复制存储库把数据复制到目标集群。

      迁移 PV 复制
    • Move:CAM 工具从源集群中卸载一个远程卷(例如 NFS),在目标集群上创建一个指向这个远程卷的 PV 资源,然后在目标集群中挂载远程卷。在目标集群中运行的应用程序使用源集群使用的同一远程卷。远程卷必须可以被源集群和目标集群访问。

      注意

      虽然复制存储库没有出现在此图表中,但实际迁移过程需要它。

      迁移 PV 移动
  6. 运行迁移计划,使用以下选项之一:

    • Stage (可选)在不停止应用程序的情况下将数据复制到目标集群。

      Stage 可以多次运行,以便在迁移前将大多数数据复制到目标。这样可最小化实际迁移时间和应用程序停机时间。

    • Migrate 在源集群中停止应用程序,并在目标集群中重新创建其资源。您可以选择在不停止应用程序的情况下迁移工作负载。
OCP 3 到 4 的应用程序迁移