升级 Migrate to Containers 和插件
本文档介绍如何将当前安装的 Migrate to Containers 升级到 1.15.0 版,并将 Migrate to Containers 插件升级到最新版本。
您通常会在执行升级之前删除所有现有迁移。如果当前正在运行任何迁移,请等待这些迁移完成,然后再删除它们。但是,不要删除迁移来源。迁移来源会在升级过程中更新。
使用 migctl 执行升级
您使用的升级过程基于 migctl
的运行环境:
在 Google Cloud 中使用 Google Kubernetes Engine (GKE) 或 GKE Enterprise 处理集群时,请通过 Cloud Shell 运行
migctl
。在 Cloud Shell 中,系统会自动安装最新版本的
migctl
。然后,您只需升级处理集群。使用 Google Distributed Cloud Virtual for Bare Metal 处理集群时,请在管理员工作站上安装
migctl
。您首先在本地管理员工作站上下载并安装最新版本的
migctl
,然后使用该版本升级处理集群。
升级 Migrate to Containers
如需将旧版 Migrate to Containers 升级到版本 1.15.0,请执行以下操作:
连接到您的处理集群:
Google Cloud 上的 migctl
访问 Google Cloud 控制台中的 GKE 菜单。
在集群列表中,找到用作处理集群的集群,然后点击其连接按钮。
在连接到集群对话框的命令行访问权限下,点击在 Cloud Shell 中运行,从而在 Cloud Shell 中运行连接命令。
gcloud container clusters get-credentials cluster-name --zone zone-name --project project-name
Google Distributed Cloud Virtual for Bare Metal 上的 migctl
- 连接到您的集群。如需了解详情,请参阅通过 Google Cloud 控制台管理集群。
检查任何现有迁移并将其删除:
列出当前迁移:
migctl migration list NAME STATUS CURRENT-OPERATION my-migration Completed GenerateArtifacts another-migration Running GenerateMigrationPlan
使用以下命令逐个删除所有已完成的迁移:
migctl migration delete my-migration
针对当前正在运行的任何迁移,重复上面的“步骤 a”并等待它完成。然后将其删除。
使用
migctl version
命令确定当前版本。例如:migctl version
返回:
Migrate to Containers version: 1.10.1
升级集群:
Google Cloud 上的 migctl
升级到 1.15.0:
在 Cloud Shell 中,运行以下命令:
migctl setup upgrade
命令:
卸载旧版 Migrate to Containers,然后安装 1.15.0 版。
将现有的迁移来源升级到 1.15.0 版。
Google Distributed Cloud Virtual for Bare Metal 上的 migctl
在管理员工作站上部署 migctl:
wget https://modernize-release.storage.googleapis.com/v1.15.0/linux/amd64/migctl
sudo cp migctl /usr/local/bin/
sudo chmod +x /usr/local/bin/migctl
. <(migctl completion bash)
升级到 1.15.0:
运行升级:
migctl setup upgrade --gkeop
命令:
卸载旧版 Migrate to Containers,然后安装 1.15.0 版。
将现有的迁移来源升级到 1.15.0 版。
通过运行
migctl doctor
命令验证升级。升级完成之前,您可能会看到如下所示的消息。如果是这样,请等待几分钟,直到升级完成,然后再次运行
migctl doctor
。migctl doctor [✓] Deployment [✓] Admission Controller [!] Components Job controllers-deploy-cert is not ready Job controllers-upgrade is not ready
以下示例输出中的对勾标记表示 Migrate to Containers 已成功升级。
migctl doctor [✓] Deployment [✓] Docker registry [✓] Artifacts repo [✓] Source Status
如果您要升级到 1.6 或更高版本,
migctl doctor
现在会显示Docker registry
、Artifacts repo
和Source Status
字段,其中:如果数据存储区配置正确,则
Docker registry
和Artifacts repo
显示 [✓]。如果存在与 Docker 注册表或工件存储区相关的错误,请参阅定义数据存储区。Source Status
在定义第一个迁移来源之前, 会显示 [!]。请参阅添加更多迁移来源 (Linux) 或添加更多迁移来源 (Windows)。
升级完成后,您必须重新创建迁移以验证迁移来源已成功升级。请参阅创建迁移。
升级 Migrate to Containers 插件
Migrate to Containers 使用插件来管理受支持工作负载的不同历程的现代化改造逻辑。如需使用最新版本的插件提供的功能,您需要升级插件,然后创建新的迁移。升级插件不会影响正在进行的迁移。
如需将插件升级到最新版本,请运行以下命令:
JOB_NAME=plugins-updater-NAME
kubectl apply -f - <<EOF
apiVersion: batch/v1
kind: Job
metadata:
name: $JOB_NAME
namespace: v2k-system
spec:
backoffLimit: 20
template:
spec:
serviceAccountName: plugins-updater-sa
containers:
- name: plugins-updater
image: us-docker.pkg.dev/migrate-modernize-public/modernize-plugins-prod/plugins-updater:latest
imagePullPolicy: Always
restartPolicy: OnFailure
EOF
将 NAME 替换为要添加到作业名称的字符串。
如需查看升级的状态,请运行以下命令:
kubectl get job -n v2k-system plugins-updater-NAME
将 NAME 替换为您添加到作业名称的同一字符串。
输出会显示作业的状态,如下所示:
NAME COMPLETIONS DURATION AGE
plugins-updater-upgrade 1/1 12s 37s
如果您在应完成数列中看到 1/1
,则表示作业已完成且插件已更新。
升级完成后,如需删除作业,请运行以下命令:
kubectl delete job -n v2k-system plugins-updater-NAME
将 NAME 替换为您添加到作业名称的同一字符串。
后续步骤
- 了解如何定义数据存储库。