10.11.2. 使用 CLI 热插二级网络接口
在虚拟机运行时,您可以热插到虚拟机(VM)的二级网络接口。
先决条件
- 网络附加定义与虚拟机相同的命名空间中配置。
- 您要热插网络接口的虚拟机正在运行。
-
已安装 OpenShift CLI(
oc)。
流程
使用您的首选文本编辑器编辑
VirtualMachine清单,如下例所示:apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-fedora template: spec: domain: devices: interfaces: - name: defaultnetwork masquerade: {} # new interface - name: <secondary_nic> bridge: {} networks: - name: defaultnetwork pod: {} # new network - name: <secondary_nic> multus: networkName: <nad_name> # ...-
spec.template.spec.domain.devices.interfaces.name指定新网络接口的名称。 -
spec.template.spec.networks.name指定网络的名称。这必须与您在template.spec.domain.devices.interfaces列表中定义的新网络接口的名称相同。 -
spec.template.spec.networks.multus.networkName指定NetworkAttachmentDefinition对象的名称。
-
- 保存更改并退出编辑器。
要使新配置生效,请运行以下命令来应用更改。应用更改会触发自动虚拟机实时迁移,并将网络接口附加到正在运行的虚拟机。
$ oc apply -f <filename>.yaml其中:
- <filename>
-
指定
VirtualMachine清单 YAML 文件的名称。
验证
使用以下命令验证虚拟机实时迁移是否成功:
$ oc get VirtualMachineInstanceMigration -w输出示例:
NAME PHASE VMI kubevirt-migrate-vm-lj62q Scheduling vm-fedora kubevirt-migrate-vm-lj62q Scheduled vm-fedora kubevirt-migrate-vm-lj62q PreparingTarget vm-fedora kubevirt-migrate-vm-lj62q TargetReady vm-fedora kubevirt-migrate-vm-lj62q Running vm-fedora kubevirt-migrate-vm-lj62q Succeeded vm-fedora通过检查虚拟机实例(VMI)的状态来验证新接口是否已添加到虚拟机:
$ oc get vmi vm-fedora -ojsonpath="{ @.status.interfaces }"输出示例:
[ { "infoSource": "domain, guest-agent", "interfaceName": "eth0", "ipAddress": "10.130.0.195", "ipAddresses": [ "10.130.0.195", "fd02:0:0:3::43c" ], "mac": "52:54:00:0e:ab:25", "name": "default", "queueCount": 1 }, { "infoSource": "domain, guest-agent, multus-status", "interfaceName": "eth1", "mac": "02:d8:b8:00:00:2a", "name": "bridge-interface", "queueCount": 1 } ]热插接口会出现在 VMI 状态中。