10.15. 为实时迁移配置专用网络
您可以为实时迁移配置专用的二级网络。专用的网络可最小化实时迁移期间对租户工作负载的网络饱和影响。
10.15.1. 为实时迁移配置专用的二级网络 复制链接链接已复制到粘贴板!
配置了 Linux 网桥网络后,您可以为实时迁移配置专用网络。专用的网络可最小化实时迁移期间对租户工作负载的网络饱和影响。
要为实时迁移配置专用的二级网络,您必须首先使用 CLI 创建桥接网络附加定义(NAD)。您可以将 NetworkAttachmentDefinition 对象的名称添加到 HyperConverged 自定义资源(CR)。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
您以具有
cluster-admin角色的用户身份登录到集群。 - 每个节点至少有两个网络接口卡 (NIC)。
- 用于实时迁移的 NIC 连接到同一 VLAN。
流程
根据以下示例创建
NetworkAttachmentDefinition清单:apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: my-secondary-network namespace: openshift-cnv spec: config: '{ "cniVersion": "0.3.1", "name": "migration-bridge", "type": "macvlan", "master": "eth1", "mode": "bridge", "ipam": { "type": "whereabouts", "range": "10.200.5.0/24" } }'-
metadata.name定义NetworkAttachmentDefinition对象的名称。 -
config.master定义用于实时迁移的 NIC 的名称。 -
config.type定义为 NAD 提供网络的 CNI 插件名称。 -
config.range定义二级网络的 IP 地址范围。这个范围不得与主网络的 IP 地址重叠。
-
运行以下命令,在默认编辑器中打开
HyperConvergedCR:$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv将
NetworkAttachmentDefinition对象的名称添加到HyperConvergedCR 的spec.liveMigrationConfig小节中。HyperConverged清单示例:apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: liveMigrationConfig: completionTimeoutPerGiB: 800 network: <network> parallelMigrationsPerCluster: 5 parallelOutboundMigrationsPerNode: 2 progressTimeout: 150 # ...-
spec.liveMigrationConfig.network定义用于实时迁移的 MultusNetworkAttachmentDefinition对象的名称。
-
-
保存更改并退出编辑器。
virt-handlerPod 会重启并连接到二级网络。
验证
当运行虚拟机的节点置于维护模式时,虚拟机会自动迁移到集群中的另一个节点。您可以通过检查虚拟机实例(VMI)元数据中的目标 IP 地址,验证迁移是否在二级网络中发生,而不是默认 pod 网络。
$ oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'