networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
OVN-Kubernetes 使用通用网络虚拟化封装 (Geneve),这是一种类似于 Geneve 的协议,用于在节点之间隧道传输流量。此网络可以使用网络接口控制器 (NIC) 卸载进行调整。
与 VLAN 相比,Geneve 提供了诸多优势,例如网络数量从 4096 个增加到超过 1600 万个,以及跨物理网络的第 2 层连接。这允许服务后端的所有 Pod 彼此通信,即使它们运行在不同的系统上。
Geneve 将所有隧道流量封装在用户数据报协议 (UDP) 数据包中。但是,这会导致 CPU 利用率增加。内外数据包都遵循正常的校验和规则,以保证数据在传输过程中不会损坏。根据 CPU 性能,与传统的非覆盖网络相比,这种额外的处理开销可能会导致吞吐量降低和延迟增加。
云、虚拟机和裸金属CPU的性能能够处理远高于1 Gbps网络吞吐量的负载。当使用更高带宽的链路(例如10或40 Gbps)时,可能会出现性能下降。这是Geneve环境中的已知问题,并非特定于容器或OpenShift Container Platform。任何依赖于Geneve或VXLAN隧道的网络由于隧道实现的原因,其性能都类似。
如果您希望突破1 Gbps的限制,您可以:
评估实现不同路由技术的网络插件,例如边界网关协议(BGP)。
使用支持Geneve卸载的网络适配器。Geneve卸载将数据包校验和计算以及相关的CPU开销从系统CPU转移到网络适配器上的专用硬件。这释放了CPU周期,供Pod和应用程序使用,并允许用户充分利用其网络基础设施的全部带宽。
Geneve卸载不会降低延迟。但是,即使在延迟测试中,CPU利用率也会降低。
有两个重要的最大传输单元(MTU):网络接口控制器(NIC)MTU和集群网络MTU。
NIC MTU在安装OpenShift Container Platform时配置,您也可以在Day 2操作中更改集群的MTU。有关更多信息,请参见“更改集群网络MTU”。MTU必须小于或等于网络NIC的最大支持值。如果您要优化吞吐量,请选择尽可能大的值。如果您要优化最低延迟,请选择较小的值。
对于OVN和Geneve,MTU必须至少比NIC MTU小100字节。
在安装大型集群或将集群扩展到更多节点时,请在安装集群之前在install-config.yaml
文件中相应地设置集群网络cidr
。
networking:
clusterNetwork:
- cidr: 10.128.0.0/14
hostPrefix: 23
machineNetwork:
- cidr: 10.0.0.0/16
networkType: OVNKubernetes
serviceNetwork:
- 172.30.0.0/16
如果集群规模超过500个节点,则无法使用默认的集群网络cidr
10.128.0.0/14
。必须将其设置为10.128.0.0/12
或10.128.0.0/10
才能支持超过500个节点的大型集群。