Debian上K8s性能调优技巧
/etc/sysctl.conf(或/etc/sysctl.d/k8s-sysctl.conf)文件,添加以下参数以优化网络性能:net.core.somaxconn = 65535(监听队列长度)、net.ipv4.tcp_max_syn_backlog = 65535(SYN队列长度)、net.ipv4.tcp_tw_reuse = 1(复用TIME-WAIT连接)、net.ipv4.tcp_fin_timeout = 30(FIN等待超时)、net.ipv4.ip_local_port_range = 1024 65535(本地端口范围)、vm.swappiness = 10(减少交换分区使用)。修改后执行sysctl -p使配置生效。net.bridge.bridge-nf-call-ip6tables = 1、net.bridge.bridge-nf-call-iptables = 1参数,确保Kubernetes网络插件(如Calico)正常工作。/etc/default/kubelet或/var/lib/kubelet/config.yaml),增加--concurrent-endpoints=1000(并发处理端点数量)、--max-pods=110(单节点最大Pod数);调整镜像垃圾回收阈值--image-gc-high-threshold=85(触发GC的高水位线)、--image-gc-low-threshold=80(GC完成后的低水位线),避免磁盘空间耗尽。ip_vs、ip_vs_rr等内核模块),替代默认的iptables模式,提升大规模集群的网络负载均衡性能;调整--conntrack-max=131072(连接跟踪表大小)、--conntrack-tcp-timeout=3600(TCP连接跟踪超时),避免连接跟踪表溢出。--request-cpu=2、--request-memory=4Gi)和限制(如--limit-cpu=4、--limit-memory=8Gi);调整--max-requests-inflight=1000(并发请求数)、--max-mutating-requests-inflight=500(并发变更请求数),提高API处理能力。proxy . 5s),减少DNS查询延迟,提升服务访问速度。ssd、hdd),实现存储资源的自动选择;设置ReclaimPolicy=Delete(删除PV时同时删除底层存储)或Retain(保留底层存储),根据数据安全性需求调整。resources.requests(如cpu: "500m"、memory: "512Mi")和resources.limits(如cpu: "1"、memory: "1Gi"),避免资源争用和OOM(Out of Memory)问题。nodeAffinity(如requiredDuringSchedulingIgnoredDuringExecution)将Pod调度到指定节点(如GPU节点),或使用podAntiAffinity(如requiredDuringSchedulingIgnoredDuringExecution)将同一服务的Pod分散到不同节点,提高负载均衡和服务可用性。targetCPUUtilizationPercentage=80)或自定义指标(如QPS)动态调整Pod副本数量,适应负载变化。INFO而非DEBUG),减少不必要的日志输出,降低磁盘I/O压力。kubectl delete pod --field-selector=status.phase==Failed删除失败Pod);更新Kubernetes及相关组件(如containerd、CNI插件)到最新稳定版本,获取性能改进和安全修复。