選擇高性能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.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網卡更能應對高吞吐場景,減少網絡瓶頸。