更新时间:2021-10-15 GMT+08:00
分享

VLAN支持

Kube-OVN当前默认使用Geneve对跨主机流量进行封装,在基础设施之上抽象出一层虚拟的Overlay网络。此外,组件在1.2.0版本开始支持VLAN功能,针对性能和吞吐量敏感的场景支持了VLAN模式的Underlay网络,容器网络可以直接通过VLAN接入物理交换机,达到更好的性能和吞吐量。

为了使用VLAN模式,主机上需要有一块专门的网卡供容器网络使用,该网卡在交换机一端的端口需要工作在Trunk模式下,来允许802.1Q格式的数据包通过。目前Geneve或VLAN是一个全局选项,所有的容器必须工作在相同模式。

VLAN模式要求有独立的网卡供Kube-OVN的容器网络使用,单网络平面不建议使用VLAN模式运行。

配置VLAN支持操作示例如下:

  1. 修改安装脚本。

    将脚本中的NETWORK_TYPE设置成VLAN,VLAN_INTERFACE_NAME设置成对应的主机网卡,按照原有方式部署集群。

  2. 创建VLAN资源。

    1
    kubectl create -f vlan.yaml
    

    创建如下VLAN资源。

    vim vlan.yaml
    apiVersion: kubeovn.io/v1
    kind: Vlan
    metadata:
      name: product
    spec:
      vlanId: 10

  3. 创建Namespace命名空间。

    1
    kubectl create -f namespace.yaml
    

    创建如下命名空间。

    vim namespace.yaml
    apiVersion: v1
    kind: Namespace
    metadata:
      name: product
      labels:
        name: product

  4. 创建Subnet并绑定VLAN。

    1
    kubectl create -f subnet.yaml
    

    命令创建如下Subnet子网,多个Subnet可以绑定到同一VLAN。

    vim subnet.yaml
    apiVersion: kubeovn.io/v1
    kind: Subnet
    metadata:
      name: product
    spec:
      cidrBlock: 10.100.0.0/16
      default: false
      gateway: 10.100.0.1
      gatewayType: distributed
      natOutgoing: true
      vlan: product
      namespaces:
        - product

  5. 创建Pods,指定命名空间即可。

    如下命令所示,即可在3创建的命名空间中部署一个nginx pod,并在对应VLAN内为其分配IP资源。

    1
    kubectl run samplepod --image=nginx --namespace=product
    

分享:

    相关文档

    相关产品

close