Migrate to Containers CLI 版本说明

本页面记录了 Migrate to Containers CLI 的正式版更新。您可以定期查看此页面,以了解有关新增的功能、经过更新的功能、已弃用的功能、错误修复和已知问题的公告。

2024 年 1 月 3 日

2024 年 1 月 3 日,我们发布了 Migrate to Containers 现代化改造插件的 1.4.1 版本,其中包含 Tomcat 迁移的 bug 修复。

2023 年 12 月 4 日

2023 年 12 月 4 日,我们发布了 Migrate to Containers CLI 1.2.2 版。

已弃用

websphere-traditional 插件现已弃用。对于现有客户,此插件在 2023 年 12 月之前仍受支持,之后将无法使用。如果您是首次进行 WebSphere 工作负载现代化改造,请改为将 websphere-container 插件与 Migrate to Containers CLI 搭配使用。

2023 年 11 月 2 日

2023 年 11 月 2 日,我们发布了 Migrate to Containers CLI 1.2.1 版,其中包含一些问题修复。

2023 年 10 月 30 日

2023 年 10 月 30 日,我们发布了 Migrate to Containers CLI 1.2.0 版。

特性

新增了对离线 Linux 应用迁移的支持

现在,Migrate to Containers CLI 支持使用新的离线模式,无需连接到互联网即可运行。利用离线模式,您可以在离线环境中迁移 Linux 应用。

如果本地环境(包括本地机器、源机器和部署集群)位于需要预先批准和安全扫描才能下载外部文件和二进制文件的安全网络中,这将非常有用。借助离线模式,我们添加了文件捆绑和取消捆绑选项,从而简化了将外部来源的软件更新传输到安全网络的过程。此外,您还可以将本地安全注册表指定为迁移的应用所需的工件的来源。

如需设置离线迁移,请在下载 Migrate to Containers CLI 后执行以下步骤:

  1. 下载离线 Migrate to Containers CLI 插件软件包:

    curl -O https://storage.googleapis.com/modernize-plugins-prod/$(curl -s https://storage.googleapis.com/modernize-plugins-prod/latest)/m2c-offline-bundle-linux.tar
    
  2. 如果需要,请将 Migrate to Containers CLI 和离线 Migrate to Containers CLI 插件软件包复制到离线环境。

  3. 解压缩离线 Migrate to Containers CLI 插件软件包:

    ./m2c plugins unpack -i m2c-offline-bundle-linux.tar
    

    如需添加对离线数据迁移的支持,请指定本地网络中提供的容器注册表:

    ./m2c plugins unpack -i m2c-offline-bundle-linux.tar --registry HOSTNAME
    

    HOSTNAME 替换为容器注册表主机名。

如需了解详情,请参阅设置离线迁移

2023 年 8 月 22 日

2023 年 8 月 22 日,我们发布了 Migrate to Containers CLI 1.1.0 版。

特性

新增了对 Windows IIS 服务迁移的支持

Migrate to Containers CLI 现在支持 Windows IIS 服务迁移。迁移 Windows IIS 服务需要在 Windows 机器上运行 Migrate to Containers CLI。

如需对 Windows IIS 服务进行现代化改造,请按照以下步骤操作:

  1. 将源虚拟机磁盘映像导出为 VHD 文件

    例如,如需从 Compute Engine 导出映像,请先将映像导出到 Cloud Storage,然后在本地机器上下载映像:

    gcloud compute images export \
        --export-format vhdx \
        --destination-uri DESTINATION_URI \
        --image IMAGE_NAME
    gsutil cp DESTINATION_URI LOCAL_PATH
    
  2. 分析磁盘映像以创建迁移计划:

    ./m2c analyze \
       -s PATH_TO_IMAGE \
       -p windows-iis-container \
       -o ANALYSIS_OUTPUT_PATH
    
  3. 修改迁移计划

  4. 通过磁盘映像和迁移计划生成迁移工件

    ./m2c generate \
       -i ANALYSIS_PATH \
       -o OUTPUT_ARTIFACTS_PATH
    

增强了对 IBM WebSphere 应用迁移的支持

修改并扩展了 IBM WebSphere 支持。现有插件支持将 WebSphere Application Server 传统版作为迁移来源。添加了新插件,以支持将 WebSphere Application Server Liberty 作为迁移来源。

IBM WebSphere Application Server 传统版迁移的变化

IBM WebSphere Application Server 传统版迁移有以下更改:

  • websphere-traditional-container 插件现在用于迁移 IBM WebSphere Application Server 传统版工作负载。
  • 现在支持将 WebSphere Application Server Liberty 作为目标。
  • was-home 参数现在是必需参数,即使您使用 mFit 扫描源虚拟机也是如此。

如需迁移 IBM WebSphere Application Server 传统版工作负载,请运行以下命令:

./m2c analyze \
    -s PATH_TO_COPIED_FILESYSTEM \
    -p websphere-traditional-container -o ANALYSIS_OUTPUT_PATH \
    -r was-home=PATH_TO_WAS_HOME \
    --volume PATH_TO_BINARYAPPSCANNER:/binaryAppScanner.jar

如需了解详情,请参阅为 WebSphere 传统版工作负载创建迁移计划

新增了对 IBM WebSphere Application Server Liberty 迁移的支持

WebSphere Application Server Liberty 的现代化改造现已随 websphere-container 插件正式发布

如需迁移 IBM WebSphere Liberty 工作负载,请运行以下命令:

./m2c analyze \
    -s PATH_TO_COPIED_FILESYSTEM \
    -p websphere-container \
    -o ANALYSIS_OUTPUT_PATH \
    -r websphere-home=WEBSPHERE_HOME \
    -r websphere-java-home=WEBSPHERE_JAVA_HOME
    -r target-base-image=TARGET_BASE_IMAGE

如需了解详情,请参阅为 WebSphere Application Server Liberty 工作负载创建迁移计划

更新了 Tomcat 插件

Tomcat 插件的发现参数已更新。

  • java-version 参数现已作为输入添加到 Tomcat 迁移中。
  • catalina-base 参数现在可以包含多个以英文冒号 (:) 分隔的目录。
  • java-versioncatalina-basecatalina-home 参数现在是必需参数,即使您使用 mFit 扫描源虚拟机也是如此。

如需了解详情,请参阅为 Tomcat 工作负载创建迁移计划

更新了 Linux 系统容器插件

自定义 Linux 迁移计划时,系统不会再自动发现 Linux 系统服务端点,您并且必须手动指定,即使您使用 mFit 扫描源虚拟机也是如此。

已修复

在早期版本的 Migrate to Containers CLI 中,尝试在 /tmp 目录中使用套接字时,copy 命令可能会失败。在此版本中,默认值已更改。如需自定义套接字位置,您可以设置 SOCKDIR 环境变量。

问题

  • Windows 映像的 Skaffold 构建可能会在 Windows 机器上失败,因为 Skaffold 尝试拉取错误目标的基础映像。

    如需解决此问题,请使用 docker pull 命令手动拉取映像,然后再次运行 Skaffold 构建。

  • 由于超时较短,Windows IIS 工作负载的部署可能会被标记为未就绪。如果您使用 Skaffold 部署工作负载,则部署可能会显示为失败。

    如需解决此问题,请使用 PowerShell 提高就绪性探测超时和时长:

    foreach ($file in (Get-ChildItem . -Recurse -Include "deployment_spec.yaml")) { (Get-Content $file).replace("periodSeconds: 10", "periodSe
    conds: 30").replace("timeoutSeconds: 1", "timeoutSeconds: 10") | Set-Content $file }
    

2023 年 6 月 27 日

2023 年 6 月 27 日,我们发布了 Migrate to Containers CLI 1.0.0 版。

特性

升级的 Skaffold API 版本

Migrate to Containers CLI 现在会使用 Skaffold API 版本 v4beta4(而不是版本 v2beta25)生成 Skaffold 配置。

添加了对 Linux 虚拟机容器化的支持

Migrate to Containers CLI 现在允许您将 Linux 虚拟机迁移到系统容器。它会发现源应用文件并对其进行处理以生成迁移工件,其中包括 Dockerfile、Kubernetes 清单和基于 Skaffold 的自动部署脚本。

Migrate to Containers CLI 使用预构建的 Linux 系统容器,它充当现代化应用所需服务的启动加载器。借助 Migrate to Containers CLI,您可以对一系列基于 Linux 的无状态应用进行现代化改造,以便在 GKE、Cloud Run 或 GKE Enterprise 集群上运行。

如需了解详情,请参阅为 Linux 虚拟机容器创建迁移计划

增强了 copy 操作

copy 操作进行了以下改进:

  • Migrate to Containers CLI copy 操作现在使用本地容器将源虚拟机文件系统复制到本地目录,而不是使用本地 tar 文件。此增强功能无需在本地机器上安装 rsync,还可以减少复制源机器文件系统所需的磁盘空间。

  • 如果失败,Migrate to Containers CLI 现在会从故障点继续复制过程。

如需了解详情,请参阅复制源机器的文件系统

添加了清理复制文件系统的功能

迁移完成后,您可以使用新的 cleanup 命令移除在本地机器上使用 copy 命令创建的源机器文件系统的副本,而不会遇到任何权限问题。

如需了解详情,请参阅清理本地机器

添加了对数据迁移的支持

执行迁移后,您现在可以使用新的 migrate-data 命令将数据目录复制到目标集群上的新或现有永久性卷声明 (PVC)。

如果您需要将永久性数据目录从源虚拟机迁移到装载在目标容器上的永久性卷,则必须执行此步骤。

如需了解详情,请参阅迁移数据

2023 年 6 月 13 日

我们在 2023 年 6 月 13 日宣布 Migrate to Containers CLI 现在已正式发布

借助 Migrate to Containers CLI,您可以将虚拟机上运行的应用组件现代化改造为在 GKE、GKE Autopilot、Cloud Run 或 GKE Enterprise 集群上运行的容器。

如需了解详情,请参阅在命令行中将应用迁移到基于容器的工作负载 | Google Cloud 博客

2023 年 5 月 2 日

2023 年 5 月 2 日,我们发布了 Migrate to Containers CLI 0.2.0 版(预览版)。借助 Migrate to Containers CLI,您可以将虚拟机上运行的应用组件现代化改造为在 GKE、GKE Autopilot、Cloud Run 或 GKE Enterprise 集群上运行的容器。该工具提供了简化的流程,包括 4 个主要步骤:

  1. 使用 SSH 或 gcloud CLI 从源虚拟机复制应用文件。
  2. 分析应用文件的本地副本以生成迁移计划。
  3. 修改迁移计划文件以自定义迁移计划。
  4. 生成作为容器映像、部署 YAML 和 Skaffold 配置文件的必要工件。

如需了解详情,请参阅 Migrate to Containers | Google Cloud 简介

特性

复制源应用文件

在本地使用 SSH 从远程虚拟机复制应用文件,或者使用 gcloud CLI 从 Google Cloud 上运行的虚拟机复制应用文件。

分析应用文件以进行现代化改造更改

分析应用二进制文件和配置文件,并使用从复制的文件中提取的参数生成迁移计划文件报告和迁移计划。

生成应用工件以作为容器运行

使用 Skaffold 配置文件生成将应用作为容器运行所需的工件,该配置文件使您可以在目标集群上自动部署生成的工件。

支持的现代化改造流程

借助新的 Migrate to Containers CLI,您可以在本地环境中对应用进行现代化改造,并直接在本地或远程集群上部署生成的工件。

Migrate to Containers CLI 支持以下现代化改造流程:

  • 将 Tomcat 应用改造为使用社区基础映像的容器
  • 将 Apache 应用改造为使用社区基础映像的容器
  • 将 IBM JBoss 应用改造为使用社区 WildFly 基础映像的容器
  • 将 IBM WebSphere Application Server 传统版改造为使用 IBM Websphere Application Server 传统映像的容器
  • 将 IBM WebSphere Application Server 传统版改造为使用 Open Liberty 容器映像的容器