2.4. 使用 CAM web 控制台迁移应用程序
2.4.1. 启动 CAM web 控制台
您可以在浏览器中启动 CAM web 控制台。
流程
- 登录到已安装 CAM 工具的 OpenShift Container Platform 集群。
运行以下命令来获取 CAM web 控制台 URL:
$ oc get -n openshift-migration route/migration -o go-template='https://{{ .spec.host }}' https://migration-openshift-migration.apps.<cluster>.openshift.com
启动浏览器并进入 CAM web 控制台。
注意如果在安装 CAM Operator 后尝试立即访问 CAM web 控制台,则该控制台可能无法加载,因为 Operator 仍然在配置集群并正在启用跨原始资源共享。等待几分钟后重试。
- 如果您使用自签名的 CA 证书,则会提示您接受源集群 API 服务器的 CA 证书。网页会引导您接受剩余证书的过程。
- 使用 OpenShift Container Platform 的用户名和密码进行登陆。
2.4.2. 把集群添加到 CAM web 控制台中
您可以将源集群添加到 CAM web 控制台。
先决条件
- 必须在源集群中配置跨原始资源共享。
如果要使用 Azure 快照复制数据:
- 在添加源集群时,您必须提供 Azure 资源组名称。
- 源和目标集群必须位于同一 Azure 资源组且位于同一位置。
流程
- 登录到源集群。
获取服务帐户令牌:
$ oc sa get-token mig -n openshift-migration eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJtaWciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlY3JldC5uYW1lIjoibWlnLXRva2VuLWs4dDJyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YjFiYWMwLWMxYmYtMTFlOS05Y2NiLTAyOWRmODYwYjMwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDptaWc6bWlnIn0.xqeeAINK7UXpdRqAtOj70qhBJPeMwmgLomV9iFxr5RoqUgKchZRG2J2rkqmPm6vr7K-cm7ibD1IBpdQJCcVDuoHYsFgV4mp9vgOfn9osSDp2TGikwNz4Az95e81xnjVUmzh-NjDsEpw71DH92iHV_xt2sTwtzftS49LpPW2LjrV0evtNBP_t_RfskdArt5VSv25eORl7zScqfe1CiMkcVbf2UqACQjo3LbkpfN26HAioO2oH0ECPiRzT0Xyh-KwFutJLS9Xgghyw-LD9kPKcE_xbbJ9Y4Rqajh7WdPYuB0Jd9DPVrslmzK-F6cgHHYoZEv0SvLQi-PO0rpDrcjOEQQ
- 登录到 CAM web 控制台。
- 在 Clusters 部分,点 Add cluster。
填写以下字段:
-
Cluster name:可包括小写字母(
a-z
)和数字(0-9
)。不能包含空格或国际字符。 -
URL:集群 API 服务器的 URL,如
https://<master1.example.com>:8443
。 - Service account token:从源集群获取的字符串。
- Azure cluster:可选。如果要使用 Azure 快照复制数据,请选择此项。
- Azure resource group:如果选中了 Azure cluster,则会出现此字段。
-
Cluster name:可包括小写字母(
点 Add cluster。
集群会出现在 Clusters 部分。
2.4.3. 在 CAM web 控制台中添加复制程序库
您可以将对象存储桶作为复制存储库添加到 CAM web 控制台。
先决条件
- 您必须配置用于迁移数据的对象存储桶。
流程
- 登录到 CAM web 控制台。
- 在 Replication repositories 部分,点 Add repository。
选择 Storage provider type 并填写以下字段:
AWS 适用于 S3、MCSG 和通用 S3 供应商:
- Replication repository name:指定 CAM web 控制台中的复制存储库。
- S3 bucket name:指定您创建的 S3 存储桶的名称。
- S3 bucket region:指定 S3 存储桶区域。AWS S3 必填。Optional 用于其他 S3 供应商。
-
S3 端点:指定 S3 服务的 URL,而不是存储桶,例如:
https://<s3-storage.apps.cluster.com>
。通用 S3 供应商必填。您必须使用https://
前缀。 -
S3 provider access key:为 AWS 指定
<AWS_SECRET_ACCESS_KEY>
,或者为 MCG 指定 S3 供应商访问密钥。 -
S3 provider secret access key:为 AWS 指定
<AWS_ACCESS_KEY_ID>
,或者为 MCG 指定 S3 供应商 secret 访问密钥。 - Require SSL verification:如果您使用的是通用 S3 供应商,则清除此复选框。
GCP:
- Replication repository name:指定 CAM web 控制台中的复制存储库。
- GCP bucket name:指定 GCP 存储桶的名称。
-
GCP credential JSON blob:在
credentials-velero
文件中指定字符串。
Azure:
- Replication repository name:指定 CAM web 控制台中的复制存储库。
- Azure resource group:指定 Azure Blob 存储的资源组。
- Azure storage account name:指定 Azure Blob 存储帐户名称
-
Azure credentials - INI file contents:在
credentials-velero
文件中指定字符串。
- 点 Add repository 并等待连接验证。
点 Close。
新存储库会出现在 Replication repositories 部分。
2.4.4. 为大型迁移修改迁移计划限制
您可以更改大型迁移的迁移计划限制。
您需要首先在自己的环境对所做的更改进行测试,以避免迁移失败。
单个迁移计划有以下默认限制:
10 个命名空间
如果超过这个限制,CAM web 控制台会显示一个 Namespace limit exceeded 错误,您将无法创建迁移计划。
100 个 Pod
如果超过 Pod 限制,CAM web 控制台会显示类似以下示例的警告信息: Plan has been validated with warning condition(s).查看警告信息。pod limit: 100 exceeded, found: 104。
100 个持久性卷(PV)
如果超过持久性卷限制,则 CAM web 控制台会显示类似的警告信息。
流程
编辑迁移控制器 CR:
$ oc get migrationcontroller -n openshift-migration NAME AGE migration-controller 5d19h $ oc edit migrationcontroller -n openshift-migration
更新以下参数:
[...] migration_controller: true # This configuration is loaded into mig-controller, and should be set on the # cluster where `migration_controller: true` mig_pv_limit: 100 mig_pod_limit: 100 mig_namespace_limit: 10 [...]
2.4.5. 在 CAM web 控制台中创建迁移计划
您可以在 CAM web 控制台中创建迁移计划。
先决条件
CAM web 控制台必须包含以下内容:
- 源集群
- 目标集群,它会在 CAM 工具安装过程中自动添加
- 复制软件仓库
- 如果要使用快照复制数据,则源和目标集群必须在同一云供应商(AWS、GCP 或 Azure)以及同一区域运行。
流程
- 登录到 CAM web 控制台。
- 在 Plans 部分,点 Add Plan。
输入 Plan name 并点 Next。
Plan name 最多可包含 253 个小写字母数字字符(
a-z,0-9
)。它不能包含空格或下划线(_
)。- 选一个 Source cluster。
- 选一个 Target cluster。
- 选一个 Replication repository。
- 选择要迁移的项目并点 Next。
选择 Copy 或 Move PV:
- Copy 将源集群的 PV 中的数据复制到复制存储库中,然后在目标集群中新创建的具有类似特征的 PV 上恢复它。
- Move 从源集群中卸载一个远程卷(例如 NFS),在目标集群上创建一个指向这个远程卷的 PV 资源,然后在目标集群中挂载远程卷。在目标集群中运行的应用程序使用源集群使用的同一远程卷。远程卷必须可以被源集群和目标集群访问。
- 点 Next。
为 PV 选择 Copy method:
Snapshot 使用云供应商的快照功能备份和恢复磁盘。它比 Filesystem 快得多。
注意存储和集群必须位于同一区域,存储类必须兼容。
- Filesystem 将源磁盘中的数据文件复制到新创建的目标磁盘。
为 PV 选择一个 Storage class。
如果选择了 Filesystem 复制方法,您可以在迁移过程中更改存储类,例如:从 Red Hat Gluster Storage 或 NFS 存储改为 Red Hat Ceph Storage。
- 点 Finish。
点 Close。
迁移计划会出现在 Plans 部分。
2.4.6. 在 CAM web 控制台中运行迁移计划
您可以使用在 CAM web 控制台中创建的迁移计划来 stage 或迁移应用程序和数据。
先决条件
CAM web 控制台必须包含以下内容:
- 源集群
- 目标集群,它会在 CAM 工具安装过程中自动添加
- 复制软件仓库
- 有效的迁移计划
流程
- 登录到 OpenShift Container Platform 4 集群上的 CAM web 控制台。
- 选择迁移计划。
点 Stage 以在不停止应用程序的情况下,将数据从源集群复制到目标集群。
您可以多次运行 Stage 以减少实际迁移时间。
当准备好迁移应用程序工作负载时,点 Migrate。
Migrate 在源集群中停止应用程序工作负载,并在目标集群中重新创建其资源。
- 另外,还可以在 Migrate 窗口中选择 Do not stop applications on the source cluster during migration。
- 点 Migrate。
迁移完成后,在 OpenShift Container Platform 4.2 web 控制台中确认已成功迁移了应用程序:
-
点 Home
Projects。 - 点迁移的项目查看其状态。
- 在 Routes 部分,点击 Location 验证应用程序是否正常运行。
-
点 Workloads
Pods 来验证 Pod 在迁移的命名空间中运行。 -
点 Storage
Persistent volumes 确认正确置备了被迁移的持久性卷。
-
点 Home