13.3. 优化网络
OVN-Kubernetes 使用通用网络虚拟化封装(Geneve)一个协议,类似于 Geneve 到节点间隧道流量。可以使用网络接口控制器 (NIC) 卸载来调优此网络。
Geneve 提供了比 VLAN 更多的好处,如网络从 4096 增加到一千六百万,以及跨物理网络的第 2 层连接。这允许服务后的所有 pod 相互通信,即使它们在不同系统中运行也是如此。
运行 OpenShift Container Platform 的云、虚拟和裸机环境可在进行最少调优配置的情况下获得高的 NIC 功能百分比。使用带有 Geneve 隧道的 OVN-Kubernetes 可以有效地处理高吞吐量的流量并扩展(例如,使用 100 Gbps NIC),并进行扩展(例如,添加更多 NIC),而无需特殊配置。
在最大效率至关重要的某些高性能场景中,目标性能调优可帮助优化 CPU 使用量、减少开销并确保您完全使用 NIC 的功能。
对于最大吞吐量和 CPU 效率至关重要的环境,您可以使用以下策略进一步优化性能:
-
使用
iPerf3
和k8s-netperf
等工具验证网络性能。这些工具允许您跨 pod 和节点接口对每秒吞吐量、延迟和数据包每秒(PPS)进行基准测试。 - 评估 OVN-Kubernetes 用户定义的网络(UDN)路由技术,如边框网关协议(BGP)。
- 使用 Geneve-offload 功能的网络适配器。Geneve-offload 将数据包校验和相关的 CPU 开销从系统 CPU 移动到网络适配器的专用硬件中。这会释放 Pod 和应用程序使用的 CPU 周期,并允许用户利用其网络基础架构的全部带宽。
13.3.1. 为您的网络优化 MTU 复制链接链接已复制到粘贴板!
有两个重要的最大传输单元 (MTU):网络接口控制器 (NIC) MTU 和集群网络 MTU。
NIC MTU 在 OpenShift Container Platform 安装时配置,您也可以将集群的 MTU 更改为安装后任务。如需更多信息,请参阅"删除集群网络 MTU"。
对于使用 OVN-Kubernetes 插件的集群,MTU 必须小于 100
字节,以获得网络 NIC 的最大支持值。如果您要优化吞吐量,请选择最大可能的值,如 8900
。如果您要优化最小延迟,请选择一个较低值。
如果您的集群使用 OVN-Kubernetes 插件,并且网络使用 NIC 来通过网络发送和接收未碎片的巨型巨型帧数据包,则必须将 9000
字节指定为 NIC 的 MTU 值,以便 pod 不会失败。
13.3.2. 安装大型集群的实践建议 复制链接链接已复制到粘贴板!
在安装大型集群或将现有的集群扩展到较大规模时,请在安装集群在 install-config.yaml
文件中相应地设置集群网络 cidr
:
带有大量节点数的集群的网络配置的 install-config.yaml
文件示例
如果集群的节点数超过 500 个,则无法使用默认的集群网络 cidr
10.128.0.0/14
。cidr
必须设置为 10.128.0.0/12
或 10.128.0.0/10
,以达到超过 500 个节点的更大的节点数。
13.3.3. IPsec 的影响 复制链接链接已复制到粘贴板!
因为加密和解密节点主机使用 CPU 电源,所以启用加密时,无论使用的 IP 安全系统是什么,性能都会影响节点上的吞吐量和 CPU 使用量。
IPsec 在到达 NIC 前,会在 IP 有效负载级别加密流量,以保护用于 NIC 卸载的字段。这意味着,在启用 IPSec 时,一些 NIC 加速功能可能无法使用,并可能导致吞吐量降低并增加 CPU 用量。