7.17.2.2.3. 在 CLI 中创建 Linux 网桥网络附加定义
作为网络管理员,您可以配置 cnv-bridge
类型的网络附加定义,为 Pod 和虚拟机提供第 2 层网络。
先决条件
-
节点必须支持 nftables,必须部署
nft
二进制文件才能启用 MAC 欺骗检查。
流程
- 在与虚拟机相同的命名空间中创建网络附加定义。
在网络附加定义中添加虚拟机,如下例所示:
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: <bridge-network> 1 annotations: k8s.v1.cni.cncf.io/resourceName: bridge.network.kubevirt.io/<bridge-interface> 2 spec: config: '{ "cniVersion": "0.3.1", "name": "<bridge-network>", 3 "type": "cnv-bridge", 4 "bridge": "<bridge-interface>", 5 "macspoofchk": true, 6 "vlan": 1 7 }'
- 1
NetworkAttachmentDefinition
对象的名称。- 2
- 可选:为节点选择注解键值对,其中
bridge-interface
必须与某些节点上配置的桥接名称匹配。如果在网络附加定义中添加此注解,您的虚拟机实例将仅在连接bridge-interface
网桥的节点中运行。 - 3
- 配置的名称。建议您将配置名称与网络附加定义的
name
值匹配。 - 4
- 为这个网络附加定义的 Container Network Interface(CNI)插件的实际名称。不要更改此字段,除非要使用不同的 CNI。
- 5
- 节点上配置的 Linux 网桥名称。
- 6
- 可选:启用 MAC 欺骗检查。当设置为
true
时,您无法更改 pod 或客户机接口的 MAC 地址。此属性仅允许单个 MAC 地址退出容器集,从而防止 MAC 欺骗攻击。 - 7
- 可选: VLAN 标签。节点网络配置策略不需要额外的 VLAN 配置。
注意Linux 网桥网络附加定义是将虚拟机连接至 VLAN 的最有效方法。
创建网络附加定义:
$ oc create -f <network-attachment-definition.yaml> 1
- 1
- 其中
<network-attachment-definition.yaml>
是网络附加定义清单的文件名。
验证
运行以下命令验证网络附加定义是否已创建:
$ oc get network-attachment-definition <bridge-network>