2.3. 部署集群应用程序迁移 (CAM) 工具
部署集群应用程序迁移 (CAM) 工具需要在 OpenShift Container Platform 4.1 源和 OpenShift Container Platform 4.2 目标集群上安装 CAM Operator,并在OpenShift Container Platform 4.1 源集群中配置跨原始资源共享。
Cluster Application Migration Operator 默认在目标集群上安装 CAM 工具(CAM web 控制台和迁移控制器)。您可以 在 OpenShift Container Platform 3 和远程集群中安装 CAM 工具。
2.3.1. 在 OpenShift Container Platform 4.1 源集群上安装 Cluster Application Migration Operator
您可以使用 OLM 在 OpenShift Container Platform 4.1 源集群上安装 Cluster Application Migration Operator。
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Catalog
OperatorHub。 -
使用 Filter by keyword 项(在这里是
Migration
)找到 Cluster Application Migration Operator。 - 选择 Cluster Application Migration Operator 并点 Install。
-
在 Create Operator Subscription 页面中,选择
openshift-migration
命名空间,并指定批准策略。 点 Subscribe。
在 Installed Operators 页中,Cluster Application Migration Operator 会出现在 openshift-migration 项目中,其状态为 InstallSucceeded。
- 在 Provided APIs 中点 View 12 more….
-
点 Create New
MigrationController。 更新
migration_controller
和migration_ui
参数,并在spec
中添加deprecated_cors_configuration
参数:spec: [...] migration_controller: false migration_ui: false [...] deprecated_cors_configuration: true
- 点击 Create。
-
点 Workloads
Pod 来验证 Restic 和 Velero Pod 是否正在运行。
2.3.2. 在 OpenShift Container Platform 4.2 目标集群上安装 Cluster Application Migration Operator
您可以使用 OLM 在 OpenShift Container Platform 4.2 目标集群上安装 Cluster Application Migration Operator。
默认情况下,Cluster Application Migration Operator 会在目标集群上安装 CAM 工具:
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 -
使用 Filter by keyword 项(在这里是
Migration
)找到 Cluster Application Migration Operator。 - 选择 Cluster Application Migration Operator 并点 Install。
-
在 Create Operator Subscription 页面中,选择
openshift-migration
命名空间,并指定批准策略。 点 Subscribe。
在 Installed Operators 页中,Cluster Application Migration Operator 会出现在 openshift-migration 项目中,其状态为 InstallSucceeded。
- 在 Provided APIs 中点 View 12 more….
-
点 Create New
MigrationController。 - 点击 Create。
-
点 Workloads
Pod 来验证 Controller Manager 、Migration UI 、Restic 和 Velero Pod 是否正在运行。
2.3.3. 在 OpenShift Container Platform 4.1 源集群中配置跨原始资源共享
您必须在 OpenShift Container Platform 4.1 源集群中配置跨原始资源共享,以启用源集群 API 服务器和 CAM 工具之间的通信。
流程
- 登录到已安装 CAM 工具的集群。
获取 CORS 配置的值:
$ oc get -n openshift-migration route/migration -o go-template='(?i)//{{ .spec.host }}(:|\z){{ println }}' | sed 's,\.,\\.,g'
- 登录到源集群。
编辑 OAuth 服务器 CR:
$ oc edit authentication.operator cluster
将 CORS 配置值添加到
spec
的unsupportedConfigOverrides
下的corsAllowedOrigins
中:spec: unsupportedConfigOverrides: corsAllowedOrigins: - (?i)//migration-openshift-migration\.apps\.cluster\.com(:|\z) 1
- 1
- 指定您的 CORS 配置值。
- 保存文件以使改变生效。
编辑 Kubernetes API 服务器 CR:
$ oc edit kubeapiserver.operator cluster
将 CORS 配置值添加到
spec
的unsupportedConfigOverrides
下的corsAllowedOrigins
中:spec: unsupportedConfigOverrides: corsAllowedOrigins: - (?i)//migration-openshift-migration\.apps\.cluster\.com(:|\z) 1
- 1
- 指定您的 CORS 配置值。
- 保存文件以使改变生效。
验证配置:
$ curl -v -k -X OPTIONS \ "<cluster_url>/apis/migration.openshift.io/v1alpha1/namespaces/openshift-migration/migclusters" \ 1 -H "Access-Control-Request-Method: GET" \ -H "Access-Control-Request-Headers: authorization" \ -H "Origin: https://<CAM_web_console_url>" 2
输出结果类似如下:
< HTTP/2 204 < access-control-allow-credentials: true < access-control-allow-headers: Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, X-Requested-With, If-Modified-Since < access-control-allow-methods: POST, GET, OPTIONS, PUT, DELETE, PATCH < access-control-allow-origin: https://migration-openshift-migration.apps.cluster < access-control-expose-headers: Date < cache-control: no-store