12.5. 配置跨集群实时迁移网络
跨集群实时迁移需要在同一网络中连接集群。具体来说,virt-handler pod 必须能够通信。
跨集群实时迁移只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
12.5.1. 配置桥接二级网络 复制链接链接已复制到粘贴板!
以下对象描述了 Bridge CNI 插件的配置参数:
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
|
CNI 规格版本。需要 |
|
|
|
您之前为 CNO 配置提供的 |
|
|
|
用于配置的 CNI 插件的名称: |
|
|
| IPAM CNI 插件的配置对象。该插件管理附加定义的 IP 地址分配。 |
|
|
|
可选:指定要使用的虚拟网桥名称。如果主机上不存在网桥接口,则进行创建。默认值为 |
|
|
|
可选:设置为 |
|
|
|
可选:设置为 |
|
|
|
可选:设置为 |
|
|
|
可选:设置为 |
|
|
|
可选:设置为 |
|
|
|
可选:设置为 |
|
|
| 可选:指定一个虚拟 LAN (VLAN) 标签作为整数值。默认情况下不分配 VLAN 标签。 |
|
|
|
可选:指示在连接到网桥的 |
|
|
|
可选:分配 VLAN 中继标签。默认值为 |
|
|
| 可选:将最大传输单元 (MTU) 设置为指定的值。默认值由内核自动设置。 |
|
|
|
可选:为容器侧 |
|
|
|
可选:启用 mac spoof 检查,将来自容器的流量限制为接口的 mac 地址。默认值为 |
VLAN 参数在 veth 的主机端配置 VLAN 标签,并在网桥接口上启用 vlan_filtering 功能。
要为 L2 网络配置 uplink,您必须使用以下命令在 uplink 接口上允许 VLAN:
bridge vlan add vid VLAN_ID dev DEV
$ bridge vlan add vid VLAN_ID dev DEV
12.5.1.1. Bridge CNI 插件配置示例 复制链接链接已复制到粘贴板!
以下示例配置了一个名为 bridge-net 的二级网络:
12.5.2. 为实时迁移配置专用的二级网络 复制链接链接已复制到粘贴板!
要为实时迁移配置专用的二级网络,您必须首先使用 CLI 创建桥接网络附加定义(NAD)。然后,您可以将 NetworkAttachmentDefinition 对象的名称添加到 HyperConverged 自定义资源(CR)。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
您以具有
cluster-admin角色的用户身份登录到集群。 - 每个节点至少有两个网络接口卡 (NIC)。
- 用于实时迁移的 NIC 连接到同一 VLAN。
流程
根据以下示例创建
NetworkAttachmentDefinition清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在默认编辑器中打开
HyperConvergedCR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
NetworkAttachmentDefinition对象的名称添加到HyperConvergedCR 的spec.liveMigrationConfig小节中。HyperConverged清单示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要用于实时迁移的 Multus
NetworkAttachmentDefinition对象的名称。
-
保存更改并退出编辑器。
virt-handlerPod 会重启并连接到二级网络。
验证
当运行虚拟机的节点置于维护模式时,虚拟机会自动迁移到集群中的另一个节点。您可以通过检查虚拟机实例(VMI)元数据中的目标 IP 地址,验证迁移是否在二级网络中发生,而不是默认 pod 网络。
oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'$ oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow