选择高性能CNI插件
CNI插件是Kubernetes网络的核心组件,直接影响网络性能与功能。推荐选择Calico(支持BGP路由、网络策略,适合大规模集群)、Cilium(基于eBPF技术,提供高性能连接与细粒度安全策略)或Flannel(简单易用,适合基础场景)。例如,Calico通过BGP实现高效路由,减少网络延迟;Cilium的eBPF技术可绕过内核部分路径,提升数据包处理速度。
优化内核网络参数
调整内核参数可显著提升网络吞吐与并发处理能力。需修改/etc/sysctl.conf
或专用配置文件(如/etc/sysctl.d/kubernetes.conf
),关键参数包括:
net.core.rmem_max
、net.core.wmem_max
、net.ipv4.tcp_rmem
、net.ipv4.tcp_wmem
),避免高并发下的缓冲区溢出;net.ipv4.tcp_tw_reuse
(复用TIME_WAIT连接),减少连接建立开销;net.core.somaxconn
,建议设为65535),避免连接被拒绝;net.ipv4.ip_local_port_range
,建议设为1024-65535),支持更多并发连接。调整MTU大小
MTU(最大传输单元)决定了数据包的最大尺寸,合适的MTU可减少分片,提升吞吐量。需根据网络环境(如物理网络、虚拟网络)调整,通常设置为1450(适用于Overlay网络,如Flannel VXLAN)或1500(标准以太网)。修改方法:编辑网卡配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33
),添加MTU=1450
,重启网络服务生效。
启用IPVS代理模式
Kubernetes Service的代理模式分为iptables(默认,适合小集群)和IPVS(高性能,适合大规模集群)。IPVS基于哈希表实现,处理大规模Service时延迟更低、吞吐更高。启用步骤:
modprobe ip_vs
、modprobe ip_vs_rr
等);--proxy-mode=ipvs
);配置网络策略
通过网络策略(NetworkPolicy)控制Pod间通信,减少不必要的流量,提升安全性与性能。例如,使用Calico创建全局网络策略,允许特定命名空间的Pod通信:
apiVersion: projectcalico.org/v3 kind: GlobalNetworkPolicy metadata: name: allow-same-namespace spec: selector: "projectcalico.org/namespace == 'default'" ingress: - action: Allow egress: - action: Allow
策略生效后,仅允许指定命名空间内的Pod相互通信,阻止非法流量。
优化系统资源限制
调整系统资源限制,支持更高的网络并发。修改/etc/security/limits.conf
,增加文件描述符限制(* soft nofile 65535
、* hard nofile 65535
);修改/etc/sysctl.conf
,调整vm.swappiness
(设为10或更低,减少swap使用,提升系统响应速度)。
关闭无用服务与防火墙
CentOS默认开启的firewalld
、NetworkManager
等服务会增加系统负载,影响网络性能。建议:
firewalld
(systemctl stop firewalld
、systemctl disable firewalld
);NetworkManager
(若使用静态网络配置,推荐使用network
服务);setenforce 0
,并修改/etc/selinux/config
中的SELINUX=disabled
)。使用高性能网络设备
选择高性能网卡(如10Gbps及以上以太网卡、InfiniBand)和交换机,提升网络带宽与传输效率。例如,10Gbps网卡比1Gbps网卡更能应对高吞吐场景,减少网络瓶颈。