×

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

有两个重要的最大传输单元(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/1210.128.0.0/10才能支持超过500个节点的大型集群。

IPsec的影响

由于加密和解密节点主机会使用CPU资源,因此无论使用哪种IP安全系统,启用加密后,节点上的吞吐量和CPU使用率都会受到影响。

IPSec在IP有效负载级别加密流量,在流量到达NIC之前进行加密,保护了否则将用于NIC卸载的字段。这意味着当启用IPSec时,某些NIC加速功能可能无法使用,并且会导致吞吐量降低和CPU使用率增加。