kubectl top nodes監控節點資源使用率,避免資源閑置或過載。編輯/etc/sysctl.conf文件,優化以下關鍵參數以提升網絡和內存性能:
net.core.somaxconn=65535(增大TCP連接隊列長度,提升網絡吞吐)、net.ipv4.tcp_tw_reuse=1(復用TIME_WAIT狀態的連接,減少連接建立開銷)、net.ipv4.ip_local_port_range=1024 65535(擴大臨時端口范圍,支持更多并發連接);vm.swappiness=10(降低內存交換概率,減少磁盤IO對應用的影響);sysctl -p使配置生效。--max-pods參數(如設置為110),允許節點運行更多Pod;設置--image-gc-high-threshold=85(鏡像磁盤使用率達85%時觸發垃圾回收)、--image-gc-low-threshold=70(回收至70%以下),清理無用鏡像釋放空間。--conntrack-max=1000000(增大連接跟蹤表大小,支持更多并發連接)、--conntrack-tcp-timeout=30s(縮短TCP連接超時時間,釋放閑置連接)。--max-requests-inflight=1000(提升并發處理能力)、--min-request-timeout=30s(減少請求超時時間)。requests(調度最小資源,如計算密集型Pod的CPU設為峰值的50%~70%)和limits(運行最大資源,如內存設為峰值的1.2~1.5倍),避免因配置極端值導致調度不合理或OOM Killer終止容器。nodeAffinity將Pod調度到符合標簽的節點(如disktype: ssd節點提升IO密集型應用性能);通過podAntiAffinity(如topologyKey: kubernetes.io/hostname)避免同一應用的多個Pod集中在同一節點,提升容災能力。kubectl taint nodes gpu-node key=gpu:NoSchedule),僅允許聲明匹配tolerations的Pod(如AI訓練Pod)調度到該節點,避免通用Pod占用專用資源。requests/limits;通過Cluster Autoscaler根據負載動態增減節點數量,實現資源按需分配。--ip-pool-mtu=1450)適配網絡環境,減少分片。