VLAN支持
Kube-OVN当前默认使用Geneve对跨主机流量进行封装,在基础设施之上抽象出一层虚拟的Overlay网络。此外,组件在1.2.0版本开始支持VLAN功能,针对性能和吞吐量敏感的场景支持了VLAN模式的Underlay网络,容器网络可以直接通过VLAN接入物理交换机,达到更好的性能和吞吐量。
为了使用VLAN模式,主机上需要有一块专门的网卡供容器网络使用,该网卡在交换机一端的端口需要工作在Trunk模式下,来允许802.1Q格式的数据包通过。目前Geneve或VLAN是一个全局选项,所有的容器必须工作在相同模式。
VLAN模式要求有独立的网卡供Kube-OVN的容器网络使用,单网络平面不建议使用VLAN模式运行。
配置VLAN支持操作示例如下:
- 修改安装脚本。
将脚本中的NETWORK_TYPE设置成VLAN,VLAN_INTERFACE_NAME设置成对应的主机网卡,按照原有方式部署集群。
- 创建VLAN资源。
1
kubectl create -f vlan.yaml
创建如下VLAN资源。
vim vlan.yaml
apiVersion: kubeovn.io/v1 kind: Vlan metadata: name: product spec: vlanId: 10
- 创建Namespace命名空间。
1
kubectl create -f namespace.yaml
创建如下命名空间。
vim namespace.yaml
apiVersion: v1 kind: Namespace metadata: name: product labels: name: product
- 创建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
- 创建Pods,指定命名空间即可。
如下命令所示,即可在3创建的命名空间中部署一个nginx pod,并在对应VLAN内为其分配IP资源。
1
kubectl run samplepod --image=nginx --namespace=product
父主题: 高级安装