7.17.2.2.3. 在 CLI 中创建 Linux 网桥网络附加定义

作为网络管理员,您可以配置 cnv-bridge 类型的网络附加定义,为 Pod 和虚拟机提供第 2 层网络。

注意

网络附加定义必须与 pod 或虚拟机位于同一个命名空间中。

流程

  1. 在与虚拟机相同的命名空间中创建网络附加定义。
  2. 在网络附加定义中添加虚拟机,如下例所示:

    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 的最有效方法。

  3. 创建网络附加定义:

    $ oc create -f <network-attachment-definition.yaml> 1
    1
    其中 <network-attachment-definition.yaml> 是网络附加定义清单的文件名。

验证

  • 运行以下命令验证网络附加定义是否已创建:

    $ oc get network-attachment-definition <bridge-network>