vm-import-controller
vm-import-controller是一个插件,用于帮助将虚拟机工作负载从其他源集群迁移到现有Harvester集群。
目前,将支持以下源提供者:
- vmware
- openstack
API
vm-import-controller引入了两个CRD
来源
sources允许用户定义有效的源群组。
比如说:
apiVersion: source.harvesterhci.io/v1beta1
kind: Vmware
metadata:
name: vcsim
namespace: default
spec:
endpoint: "https://vscim/sdk"
dc: "DCO"
credentials:
name: vsphere-credentials
namespace: default
秘密包含vcenter端点的凭证:
apiVersion: v1
kind: Secret
metadata:
name: vsphere-credentials
namespace: default
stringData:
"username": "user"
"password": "password"
作为调节过程的一部分,控制器将登录到vcenter,并验证源规格中指定的dc 是有效的。
一旦这个检查被通过,源就被标记为准备好了,可以用于虚拟机迁移:
$ kubectl get vmware.source
NAME STATUS
vcsim clusterReady
导入工作(ImportJob
ImportJob crd为用户提供了一种方法来定义源虚拟机和与实际源集群的映射,以执行虚拟机的导出-导入。
一个导入任务的例子如下:
apiVersion: importjob.harvesterhci.io/v1beta1
kind: VirtualMachine
metadata:
name: alpine-export-test
namespace: default
spec:
virtualMachineName: "alpine-export-test"
networkMapping:
- sourceNetwork: "dvSwitch 1"
destinationNetwork: "default/vlan1"
- sourceNetwork: "dvSwitch 2"
destinationNetwork: "default/vlan2"
sourceCluster:
name: vcsim
namespace: default
kind: Vmware
apiVersion: source.harvesterhci.io/v1beta1
这将触发控制器在vmware源vcsim上导出名为 "alpine-export-test "的虚拟机,以便导出、处理并重新创建到收获者集群中。
根据虚拟机的大小,这可能需要一段时间,但用户应该看到VirtualMachineImages ,为定义的虚拟机中的每个磁盘创建。
networkMapping 中的项目列表将定义源网络接口如何被映射到收割机网络中。
如果没有找到匹配的,那么每个不匹配的网络接口都会被连接到默认的网络接口。managementNetwork
一旦虚拟机被成功导入,该对象将反映出以下状态
$ kubectl get virtualmachine.importjob
NAME STATUS
alpine-export-test virtualMachineRunning