文章目录
准备对象存储
MTC 的 Replication Repository 可以使用以下对象存储:
- Multi-Cloud Object Gateway (MCG)
- Amazon Web Services (AWS) S3
- Google Cloud Provider (GCP)
- Microsoft Azure Generic
- S3 object storage, MinIO 或 Ceph
请参考《OpenShift 4 - 部署运行 MinIO 对象存储》在 OpenShift 4 上部署 MinIO 环境。
配置迁移源 OpenShift 3 的环境
部署 Migration Operator
- 执行命令,根据 2 个 yaml文件创建 Migration Operator。
$ mkdir $HOME/mtc
$ sudo docker cp $(sudo docker create registry.redhat.io/rhmtc/openshift-migration-rhel7-operator:v1.3.1):/operator.yml $HOME/mtc
$ sudo docker cp $(sudo docker create registry.redhat.io/rhmtc/openshift-migration-rhel7-operator:v1.3.1):/controller-3.yml $HOME/mtc
$ oc create -f $HOME/mtc/operator.yml
$ oc create -f $HOME/mtc/controller-3.yml
- 查看部署的 Operator资源
$ oc get pods -n openshift-migration
NAME READY STATUS RESTARTS AGE
migration-operator-77d77fff48-28t9c 1/1 Running 0 1m
restic-b2k9z 1/1 Running 0 31s
restic-c8hwm 1/1 Running 0 31s
restic-gpnjz 1/1 Running 0 31s
restic-nfqwd 1/1 Running 0 31s
velero-585b8ddc7d-ftprk 1/1 Running 0 31s
部署 file-uploader 测试应用
- 在 OpenShift 3 的控制台先进入 “file-uploader” 项目,然后在 Service Catalog 中找到 “PHP”。然后根据下图创建 “file-uploader” 应用。
其中 Git Repository - https://github.com/christianh814/openshift-php-upload-demo
- 进入名为 “file-uploader” 的 Deployment ,然后查看 Configuration 栏目。在下图中修改 Replicas 数量,将其增加到 3 个。
- 然后点击上图下方的 “Add Storage” 链接,在跳转的 “Add Storage” 页面中点击“Create Storage”。
- 在“Create Storage”页面先创建一个名为 “file-uploader-vol-claim” 的 PVC,然后在 Deployment 中按照下图使用这个新建的 PVC。
- 最后通过 Route 访问应用即可。
查看集群配置
- 查到 ServiceAccount 中的 migration-controller 令牌。后面将使用 OCP3-TOKEN 引用这个令牌,并用来访问这个 OpenShift 3 集群。
$ oc sa get-token migration-controller -n openshift-migration
eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJvcGVuc2hpZnQtbWlncmF0aW9uIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Im1pZ3JhdGlvbi1jb250cm9sbGVyLXRva2VuLTJmNmhrIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Im1pZ3JhdGlvbi1jb250cm9sbGVyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNmQyNmVjN2UtMWQzYS0xMWViLWI2ZjQtMTYzZjM1MzNlNTFmIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Om9wZW5zaGlmdC1taWdyYXRpb246bWlncmF0aW9uLWNvbnRyb2xsZXIifQ.Nf134JLn9cMmNORxZC8ilJN9W43sj0_tj_B5c3Bf6l-Z4mcdXnjgR1NLH11qqJc7-9H9bgTfm8lza0kQZgEcsNIY47nxPoezkKGoOXVKEpTsaP_inykHRr6iqUuZgKiCu9I0n8st27dG0VYE8bpboPOlO8iITTH7VHbLVnWEKgk-_5CKnSmycsgFoqrfWYSEi9qbnxi2PkrQ3wLhic8RmItvCgpbvr62eV2z5Q82Gxtf9x4-RPLK5_vFtKHvK8vXjs2mw-jihM_LBuxRLbQCI64_F5MRUowFp8zUIaAuqCDtUVAPukJq6dt91tPTXg_YuSZGHV5s_NVeSIb1PDqUWg
- 获得 OpenShift 3 集群的 API 地址,后面将使用 OCP3-API 引用这个 API 地址。
$ oc whoami --show-server
https://master.bdvwt.sandbox725.opentlc.com:443
配置迁移目标 OpenShift 4 的环境
安装 MTC Operator
- 使用缺省配置安装 Migration Toolkit for Containers Operator。注意:缺省会安装到 openshift-migration 项目中。
- 安装好 Operator 后可以在其中看到已经将当前的 OpenShift 集群作为一个 MigCluster 对象。
创建 Migration Controller
- 在 openshift-migration 项目中使用 MTC Operator 提供的缺省配置新建一个 Migration Controller 对象。
- 查看运行在 “openshift-migration” 项目中的 Pod,还可在 “开发者” 视图的 “拓扑” 中可以查看部署资源的状态,或查看 “migration-controller” 的 Resources 栏目中的资源状态。
$ oc get pods -n openshift-migration
NAME READY STATUS RESTARTS AGE
migration-controller-94fdc5cb7-ktpgz 2/2 Running 0 16m
migration-log-reader-5548595dbb-jlplm 2/2 Running 0 16m
migration-operator-56cb9bfdc4-mdfnr 1/1 Running 0 26m
migration-ui-7f8b778fb6-vh4fh 1/1 Running 0 13m
restic-hcdhn 1/1 Running 0 17m
velero-7b7986f4cf-4p45z 1/1 Running 0 17m
- 查看名为 “migration ” 的路由地址,然后用浏览器访问路由地址,可以看到 Migration Toolkit for Containers 的控制台。
$ oc get route migration -n openshift-migration -o jsonpath=https://{.spec.host}
https://migration-openshift-migration.apps.cluster-n8rwq.n8rwq.sandbox1048.opentlc.com
添加 Replication Repository (MigStorage)
- 进入 MTC 控制台的 Replication repositories 菜单,然后点击进入 “Add replication repository” 。
- 在 “Add replication repository” 窗口中按照以下填写配置,最后点击 “Add Repository” 会显示 “Connection successful”。
Storage provider type : S3
Replication repository name:ocp-migration-repository
S3 bucket name:ocp-migration-bucket
S3 endpoint:MINIO服务的路由地址
S3 provider access key:minio
S3 provider secret access key:minio123
- 完成后可以在 OpenShift 控制台的 MTC Operator 中查找创建的 MigStore 对象。
添加迁移的 OpenShift 集群
- 进入 MTC 控制台中的 “Clusters” 菜单,然后点击 “Add cluster”。在 “Add cluster” 窗口提供以下配置:
Cluster name:ocp3
URL:https://OCP3-API
Service account token:OCP3-TOKEN
然后点击 “Add cluster” 按钮,成功后会显示“Connection successful”。
- 完成后 Clusters 中的 “ocp3” 是迁移的源集群,“host” 是迁移的目标集群。
添加迁移计划
-
进入 MTC 控制台的 Migration plan,然后点击 “Add migration plan”。
-
在 “Create a migration plan” 窗口的 General 步骤按照下图设置:
Plan name:file-uploader-mig-plan
Source cluster:ocp3
Target cluster:host
Repository:ocp-migration-repository
-
在 Namespaces 步骤选中 “file-uploader”。
-
在 Persistent volumes 步骤的 “Migration type” 选择 “Copy”。
-
在Copy options 步骤的 “Copy method” 选择 “Filesystem copy”,然后在 Target storage class 中选择一个目标集群的 StoreClass。
-
在 5、6 步骤接受缺省即可完成。
应用迁移和回退
执行迁移计划
- 在 file-uploader-migration-plan 迁移计划的下列菜单中选择 “Migrate”。
- 在弹出的窗口中点击 “Migrate”。
- 进入上图 “Migrations” 列的链接,查看迁移的执行进度,知道全部执行完。
- 在目标 OpenShift 4 集群中确认已经有 file-uploader 项目,并且file-uploader应用已经可以访问,并且已经有前面上传的文件。
- 确认此时在迁移源 OpenShift 3 集群的 file-uploader 应用中的 Pod 数量已经降为 “0”,而迁移目标 OpenShift 4 集群的 file-uploader 应用中的 Pod 数量为 “3。
回退迁移
- 在 file-uploader-migration-plan 迁移计划的下列菜单中选择 “Rollback”。
- 查看执行进入直到完成。
- 确认迁移目标 OpenShift 4 的 file-uploader 应用已经不能访问,而迁移源 OpenShift 3 的 file-uploader 应用已经恢复访问了。