VM 移轉網路
VM 移轉網路 (VM migration network) 適用於將移轉流量從 mgmt 上的叢集流量和其他全叢集工作負載中隔離出來。使用 VM 移轉網路可獲得更好的網路頻寬與效能。
請避免直接設定 KubeVirt 設定,因為這可能會導致非預期或不想要的系統行為。
先決條件
在開始設定 VM 移轉網路之前,請確保滿足以下要求:
-
網路交換器已正確設定,並已指派專用的 VLAN ID 給 VM 移轉網路。
-
叢集網路 (Cluster network) 和 VLAN 網路 已正確設定。請確保這兩個網路涵蓋所有節點且可存取。
-
沒有正在進行移轉的虛擬機器。
-
VM 移轉網路的 IP 範圍需使用 IPv4 CIDR 格式,且不得與 Kubernetes 叢集網路衝突或重疊。以下為保留位址:
10.42.0.0/16、10.43.0.0/16、10.52.0.0/16和10.53.0.0/16。
vm-migration-network 設定
vm-migration-network 設定允許您在需要隔離時,設定用於隔離叢集內 VM 移轉流量的網路。
您可以使用 UI 或 CLI 啟用 和 停用 VM 移轉網路。啟用此設定時,您必須透過設定特定欄位來建構 Multus NetworkAttachmentDefinition CRD。
- UI
- CLI
強烈建議使用 Harvester UI 來配置 vm-migration-network 設定。
啟用 VM 移轉網路
-
前往 Advanced > Settings > vm-migration-network。
-
選擇 Enabled。
-
設定 VLAN ID、Cluster Network、IP Range 和 Exclude 欄位以建構 Multus
NetworkAttachmentDefinitionCRD。 -
點擊 Save。

停用 VM 移轉網路
-
前往 Advanced > Settings > vm-migration-network。
-
選擇 Disabled。
-
點擊 Save。
一旦 VM 移轉網路被停用,KubeVirt 將開始使用 mgmt 進行 VM 移轉相關的操作。

您可以使用以下指令來配置 vm-migration-network 設定。
kubectl edit settings.harvesterhci.io vm-migration-network
當 value 欄位包含有效的 JSON 字串時,VM 移轉網路會自動啟用。
範例:
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"]}'
當您移除 value 欄位或將其設定為空字串時,VM 移轉網路將被停用。
apiVersion: harvesterhci.io/v1beta1
kind: Setting
metadata:
name: vm-migration-network
apiVersion: harvesterhci.io/v1beta1
kind: Setting
metadata:
name: vm-migration-network
value: ''
Harvester 會將 JSON 字串中額外的無關字元視為不同的設定。
一旦套用 vm-migration-network 設定,將發生以下情況:
- Harvester 會建立一個新的
NetworkAttachmentDefinition並更新 KubeVirt 設定。 - KubeVirt 會重新啟動所有
virt-handlerPod 以套用新的網路設定。
設定後步驟 (Post-Configuration Steps)
-
使用以下指令驗證設定的狀態是否為
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-handlerPod 的清單: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...