10.3. 优化网络
OVN-Kubernetes 使用 Generic Network Virtualization Encapsulation (Geneve),一个类似于 Geneve 的协议,用于在节点间为流量提供隧道。可以使用网络接口控制器 (NIC) 卸载来调优此网络。
Geneve 提供了比 VLAN 更多的好处,如网络从 4096 增加到一千六百万,以及跨物理网络的第 2 层连接。这允许服务后的所有 pod 相互通信,即使它们在不同系统中运行也是如此。
Geneve 在用户数据报协议(UDP)数据包中封装所有隧道流量。但是,这会导致 CPU 使用率增加。这些外部数据包和内部数据包集都遵循常规的校验规则,以保证在传输过程中不会损坏数据。根据 CPU 性能,这种额外的处理开销可能会降低吞吐量,与传统的非覆盖网络相比会增加延迟。
云、虚拟机和裸机 CPU 性能可以处理很多 Gbps 网络吞吐量。当使用高带宽链接(如 10 或 40 Gbps)时,性能可能会降低。基于 Geneve 的环境里存在一个已知问题,它并不适用于容器或 OpenShift Container Platform。由于实施了隧道,任何依赖于 Geneve 或 VXLAN 隧道的网络都将以相似的形式进行。
如果您希望超过 Gbps,可以:
- 试用采用不同路由技术的网络插件,比如边框网关协议(BGP)。
- 使用 Geneve-offload 功能的网络适配器。Geneve-offload 将数据包校验和相关的 CPU 开销从系统 CPU 移动到网络适配器的专用硬件中。这会释放 Pod 和应用程序使用的 CPU 周期,并允许用户利用其网络基础架构的全部带宽。
Geneve-offload 不会降低延迟。但是,即使延迟测试也会降低 CPU 使用率。
10.3.1. 为您的网络优化 MTU
有两个重要的最大传输单元 (MTU):网络接口控制器 (NIC) MTU 和集群网络 MTU。
NIC MTU 在 OpenShift Container Platform 安装时配置,您也可以将集群的 MTU 更改为第 2 天操作。如需更多信息,请参阅"收集集群网络 MTU"。MTU 必须小于或等于您网络 NIC 的最大支持值。如果您要优化吞吐量,请选择最大可能的值。如果您要优化最小延迟,请选择一个较低值。
对于 OVN 和 Geneve,MTU 必须至少小于 NIC MTU 100 字节。
其他资源
10.3.2. 安装大型集群的实践建议
在安装大型集群或将现有的集群扩展到较大规模时,请在安装集群在 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 个节点的环境。
10.3.3. IPsec 的影响
因为加密和解密节点主机使用 CPU 电源,所以启用加密时,无论使用的 IP 安全系统是什么,性能都会影响节点上的吞吐量和 CPU 使用量。
IPsec 在到达 NIC 前,会在 IP 有效负载级别加密流量,以保护用于 NIC 卸载的字段。这意味着,在启用 IPSec 时,一些 NIC 加速功能可能无法使用,并可能导致吞吐量降低并增加 CPU 用量。