|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
虚拟机迁移网络
虚拟机迁移网络有助于将迁移流量与`mgmt`上的集群流量和其他集群范围的工作负载隔离。使用虚拟机迁移网络可以获得更好的网络带宽和性能。
|
避免直接配置KubeVirt设置,因为这可能导致意外或不希望的系统行为。 |
先决条件
在开始配置虚拟机迁移网络之前,请确保满足以下要求:
`vm-migration-network`设置
vm-migration-network设置允许您在需要隔离时配置用于隔离集群内虚拟机迁移流量的网络。
您可以通过UI或CLI启用和禁用虚拟机迁移网络。当设置启用时,您必须通过配置某些字段来构建Multus NetworkAttachmentDefinition CRD。
-
UI
-
CLI
|
强烈建议使用SUSE Virtualization UI来配置`vm-migration-network`设置。 |
==== 启用虚拟机迁移网络
-
转到*高级 → 设置 → vm-migration-network*。
-
选择*启用*。
-
配置*VLAN ID*、集群网络、*IP范围*和*排除*字段以构建Multus
NetworkAttachmentDefinitionCRD。 -
单击*保存*。
==== 禁用虚拟机迁移网络
-
转到*高级 > 设置 > vm-migration-network*。
-
选择*禁用*。
-
单击*保存*。
一旦虚拟机迁移网络被禁用,KubeVirt将开始使用`mgmt`进行与虚拟机迁移相关的操作。
您可以使用以下命令配置vm-migration-network设置。
kubectl edit settings.harvesterhci.io vm-migration-network
当值字段包含有效的JSON字符串时,虚拟机迁移网络会自动启用。
示例:
apiVersion: harvesterhci.io/v1beta1
kind: Setting
metadata:
name: vm-migration-network
value: '{"vlan":100,"clusterNetwork":"vm-migration","range":"192.168.1.0/24", "exclude":["192.168.1.100/32"]}'
在以下情况下,虚拟机迁移网络被禁用:
-
值字段为空。
apiVersion: harvesterhci.io/v1beta1 kind: Setting metadata: name: vm-migration-network value: '' -
值字段已被移除。
apiVersion: harvesterhci.io/v1beta1 kind: Setting metadata: name: vm-migration-network
|
SUSE Virtualization将JSON字符串中的额外无关字符视为不同的配置。 |
一旦应用`vm-migration-network`设置,将发生以下情况:
-
SUSE Virtualization创建一个新的`NetworkAttachmentDefinition`并更新KubeVirt配置。
-
KubeVirt重新启动所有`virt-handler` pod以应用新的网络配置。
配置后步骤
-
使用以下命令验证设置的状态为`True`,类型为`configured`:
kubectl get settings.harvesterhci.io vm-migration-network -o yaml示例:
apiVersion: harvesterhci.io/v1beta1 kind: Setting metadata: annotations: vm-migration-network.settings.harvesterhci.io/hash: ec8322fb6b741f94739cbb904fc73c3fda864d6d vm-migration-network.settings.harvesterhci.io/net-attach-def: harvester-system/vm-migration-network-6flk7 creationTimestamp: "2025-06-13T06:36:39Z" generation: 51 name: vm-migration--network resourceVersion: "154638" uid: 2233ad63-ee52-45f6-a79c-147e48fc88db status: conditions: - lastUpdateTime: "2025-06-13T13:05:17Z" reason: Completed status: "True" type: configured -
验证所有 KubeVirt
virt-handlerPod 是否已准备好,并且它们的网络是否已正确配置。您可以使用以下命令检查 Pod 详细信息:
kubectl -n harvester-system describe pod <pod-name> -
检查`k8s.v1.cni.cncf.io/network-status`注释并验证名为`migration0`的接口是否存在。该接口的IP地址必须在指定的IP范围内。
您可以使用以下命令检索
virt-handler个 Pod 的列表:kubectl get pods -n harvester-system -l kubevirt.io=virt-handler -o yaml示例:
apiVersion: v1 kind: Pod metadata: annotations: cni.projectcalico.org/containerID: 004522bc8468ea707038b43813cce2fba144f0e97551d2d358808d57caf7b543 cni.projectcalico.org/podIP: 10.52.2.122/32 cni.projectcalico.org/podIPs: 10.52.2.122/32 k8s.v1.cni.cncf.io/network-status: |- [{ "name": "k8s-pod-network", "ips": [ "10.52.2.122" ], "default": true, "dns": {} },{ "name": "harvester-system/vm-migration-network-6flk7", "interface": "migration0", "ips": [ "10.1.2.1" ], "mac": "c6:30:6f:02:52:3e", "dns": {} }] k8s.v1.cni.cncf.io/networks: vm-migration-network-6flk7@migration0 Omitted...
最佳实践
-
在为虚拟机迁移网络配置IP范围时,请确保分配的IP地址能够满足集群未来的需求。这很重要,因为KubeVirt pods(
virt-handler)在虚拟机迁移网络配置后添加新节点到集群时会停止运行,并且当所需的IP数量超过分配的IP时也会停止运行。解决此问题涉及使用正确的IP范围重新配置虚拟机迁移网络。 -
在非`mgmt`集群网络上配置虚拟机迁移网络,以确保虚拟机迁移流量与Kubernetes控制平面流量完全隔离。使用`mgmt`是可能的,但不推荐,因为它会对控制平面网络性能产生负面影响(资源和带宽争用)。仅在您的集群存在与NIC相关的限制并且能够完全隔离流量时使用`mgmt`。