11.7. 从 Red Hat OpenShift Virtualization 源供应商迁移
您可以使用 Red Hat OpenShift Virtualization 供应商作为源供应商,或作为目的地供应商。您可以使用命令行界面(CLI)从 OpenShift Virtualization 源供应商迁移。
流程
为源供应商凭证创建
Secret
清单:$ cat << EOF | oc apply -f - apiVersion: v1 kind: Secret metadata: name: <secret> namespace: <namespace> ownerReferences: 1 - apiVersion: forklift.konveyor.io/v1beta1 kind: Provider name: <provider_name> uid: <provider_uid> labels: createdForProviderType: openshift createdForResourceType: providers type: Opaque stringData: token: <token> 2 password: <password> 3 insecureSkipVerify: <"true"/"false"> 4 cacert: | 5 <ca_certificate> url: <api_end_point> 6 EOF
为源供应商创建
Provider
清单:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Provider metadata: name: <source_provider> namespace: <namespace> spec: type: openshift url: <api_end_point> 1 secret: name: <secret> 2 namespace: <namespace> EOF
创建
NetworkMap
清单来映射源和目标网络:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: NetworkMap metadata: name: <network_map> namespace: <namespace> spec: map: - destination: name: <network_name> type: pod 1 source: name: <network_name> type: pod - destination: name: <network_attachment_definition> 2 namespace: <network_attachment_definition_namespace> 3 type: multus source: name: <network_attachment_definition> namespace: <network_attachment_definition_namespace> type: multus provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> EOF
创建
StorageMap
清单来映射源和目标存储:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: StorageMap metadata: name: <storage_map> namespace: <namespace> spec: map: - destination: storageClass: <storage_class> accessMode: <access_mode> 1 source: name: <storage_class> provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> EOF
- 1
- 允许的值有
ReadWriteOnce
和ReadWriteMany
。
可选:在
Plan
CR 中指定的阶段创建一个Hook
清单以在虚拟机中运行自定义代码:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Hook metadata: name: <hook> namespace: <namespace> spec: image: quay.io/kubev2v/hook-runner serviceAccount:<service account> 1 playbook: | LS0tCi0gbm... 2 EOF
注意您可以使用默认
hook-runner
镜像或指定自定义镜像。如果指定自定义镜像,则不需要指定 playbook。
输入以下命令为 MTV 迁移创建传输网络的网络附加定义(NAD)。
您可以使用此定义为接口配置 IP 地址,可以从 Dynamic Host Configuration Protocol (DHCP)或静态方式配置。
配置 IP 地址可让接口访问配置的网关。
$ oc edit NetworkAttachmentDefinitions <name_of_the_NAD_to_edit> apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: <name_of_transfer_network> namespace: <namespace> annotations: forklift.konveyor.io/route: <IP_address>
为迁移创建
Plan
清单:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Plan metadata: name: <plan> 1 namespace: <namespace> spec: provider: source: name: <source_provider> namespace: <namespace> destination: name: <destination_provider> namespace: <namespace> map: 2 network: 3 name: <network_map> 4 namespace: <namespace> storage: 5 name: <storage_map> 6 namespace: <namespace> targetNamespace: <target_namespace> vms: - name: <source_vm> namespace: <namespace> hooks: 7 - hook: namespace: <namespace> name: <hook> 8 step: <step> 9 EOF
创建运行
Plan
CR 的Migration
清单:$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Migration metadata: name: <name_of_migration_cr> namespace: <namespace> spec: plan: name: <name_of_plan_cr> namespace: <namespace> cutover: <optional_cutover_time> EOF
注意如果您指定了一个截止时间,请使用 ISO 8601 格式以及 UTC 时间偏移,例如
2024-04-04T01:23:45.678+09:00
。
11.7.1. 使用命令行界面取消迁移
您可以使用命令行界面(CLI)在迁移过程中取消整个迁移或特定虚拟机的迁移。
取消整个迁移
删除
Migration
CR:$ oc delete migration <migration> -n <namespace> 1
- 1
- 指定
Migration
CR 的名称。
取消特定虚拟机的迁移
将特定的虚拟机添加到
Migration
清单的spec.cancel
块中:取消两个虚拟机的迁移的 YAML 示例
$ cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: Migration metadata: name: <migration> namespace: <namespace> ... spec: cancel: - id: vm-102 1 - id: vm-203 - name: rhel8-vm EOF
- 1
- 您可以使用
id
键或name
键指定虚拟机。
id
键的值是受管对象的引用(VMware VM),或 VM UUID(RHV VM)。检索
Migration
CR 以监控剩余的虚拟机的进度:$ oc get migration/<migration> -n <namespace> -o yaml