2.11. 将虚拟机附加到多个网络
容器原生虚拟化提供第 2 层网络功能,支持将虚拟机连接至多个网络。您可使用现有工作负载导入虚拟机,具体取决于对多个接口的访问权限。您还可配置 PXE 网络以便可通过网络启动机器。
首先,网络管理员配置 cnv-bridge
类型的 NetworkAttachmentDefinition。然后,用户可将 Pod、虚拟机实例和虚拟机附加到桥接网络。您可以从容器原生虚拟化 web 控制台创建引用桥接网络的 vNIC。
2.11.1. 容器原生虚拟化网络术语表
容器原生虚拟化使用自定义资源和插件提供高级联网功能。
以下是整个容器原生虚拟化文档中使用的术语:
- Container Network Interface (CNI)
- 一个 Cloud Native Computing Foundation 项目,侧重容器网络连接。容器原生虚拟化使用 CNI 插件基于基本 Kubernetes 网络功能进行构建。
- Multus
- 一个“meta”CNI 插件,支持多个 CNI 共存,以便 Pod 或虚拟机可使用其所需的接口。
- 自定义资源定义 (CRD)
- 一种 Kubernetes API 资源,用于定义自定义资源,或使用 CRD API 资源定义的对象。
- NetworkAttachmentDefinition
- 一种由 Multus 项目引入的 CRD,用于向一个或多个网络附加 Pod、虚拟机和虚拟机实例。
- 预启动执行环境 (PXE)
- 一种接口,让管理员能够通过网络从服务器启动客户端机器。网络启动可用于为客户端远程加载操作系统和其他软件。
2.11.2. 将资源连接至桥接网络
作为网络管理员,您可配置 cnv-bridge
类型的 NetworkAttachmentDefinition,为 Pod 和虚拟机提供第 2 层网络。
先决条件
- 容器原生虚拟化 2.0 或更新版本
- 必须在每个节点上配置一个 Linux 网桥,并将其附加到正确的网络接口卡。
-
如果使用 VLAN,则必须在网桥上启用
vlan_filtering
。 NIC 必须标记到所有相关 VLAN。
-
例如:
bridge vlan add dev bond0 vid 1-4095 master
-
例如:
流程
在任何本地目录中为 NetworkAttachmentDefinition 新建一个新文件。该文件必须具有以下内容,并修改以匹配您的配置:
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: a-bridge-network annotations: k8s.v1.cni.cncf.io/resourceName: bridge.network.kubevirt.io/br0 1 spec: config: '{ "cniVersion": "0.3.1", "plugins": [ { "type": "cnv-bridge", 2 "bridge": "br0", 3 "ipam": {} }, { "type": "tuning" 4 } ] }'
$ oc create -f <resource_spec.yaml>
编辑要连接至桥接网络的虚拟机或虚拟机实例的配置文件:
apiVersion: v1 kind: VirtualMachine metadata: name: example-vm annotations: k8s.v1.cni.cncf.io/networks: a-bridge-network 1 spec: ...
- 1
- 您必须替换来自 NetworkAttachmentDefinition 的实际
name
值。
在本例中,NetworkAttachmentDefinition 和 Pod 位于同一个命名空间中。
要指定不同的命名空间,请使用以下语法:
... annotations: k8s.v1.cni.cncf.io/networks: <namespace>/a-bridge-network ...
向资源应用配置文件:
$ oc create -f <local/path/to/network-attachment-definition.yaml>
在下一部分中定义 vNIC 时,请确保 NETWORK 值是来自您在上一部分中创建的 NetworkAttachmentDefinition 的桥接网络名称。
2.11.3. 为虚拟机创建 NIC
从 web 控制台创建并附加额外 NIC。
流程
-
在容器原生虚拟化控制台的正确项目中,点击 Workloads
Virtual Machines。 - 选择虚拟机模板。
- 点击 Network Interfaces 以显示已附加到虚拟机的 NIC。
- 点击 Create NIC 在列表中创建新插槽。
- 填写新 NIC 的 NAME、NETWORK、MAC ADDRESS 和 BINDING METHOD。
- 点击 ✓ 按钮保存并附加 NIC 到虚拟机。
2.11.4. 网络字段
名称 | 描述 |
---|---|
Create NIC | 为虚拟机创建新 NIC。 |
NIC NAME | NIC 的名称。 |
MAC ADDRESS | 网络接口的 MAC 地址。如果未指定 MAC 地址,将为会话生成一个临时地址。 |
NETWORK CONFIGURATION | 可用 NetworkAttachmentDefinition 对象列表。 |
BINDING METHOD |
可用绑定方法列表。对于默认的 Pod 网络, |
PXE NIC |
支持 PXE 的网络列表。只有在将 |
在虚拟机上安装可选 QEMU 客户机代理,以便主机可以显示附加网络相关信息。