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)适配网络环境,减少分片。