一、硬件资源优化
kubectl top nodes
/kubectl top pods
实时监控资源使用情况,针对性扩容。二、系统级调优
vm.max_map_count
(增加虚拟内存映射区域,建议设为262144+)、vm.swappiness
(降低交换空间使用,建议设为10以下)、vm.overcommit_memory
(允许内存过度分配,设为1);优化网络参数:net.ipv4.tcp_tw_reuse
(启用TIME_WAIT连接复用)、net.core.somaxconn
(扩大监听队列,建议设为65535)、net.ipv4.tcp_max_syn_backlog
(增大SYN队列,建议设为8192)。firewalld
、postfix
等不必要的服务,减少系统资源占用;若无需SELinux,可临时关闭(setenforce 0
)或永久禁用(修改/etc/selinux/config
)。三、Kubernetes组件调优
--max-pods
参数(允许单节点运行更多Pod,建议根据节点资源设为100+);调整镜像垃圾回收阈值--image-gc-high-threshold
(如85%)、--image-gc-low-threshold
(如80%),定期清理无用镜像。iptables
模式(性能优于IPVS);大规模集群启用IPVS模式,调整--conntrack-max
(连接跟踪表大小,建议设为131072+)、--conntrack-tcp-timeout
(TCP连接超时,建议设为3600s),优化连接处理效率。--max-requests-inflight
(并发请求数,建议设为1000+)、--max-mutating-requests-inflight
(并发变更请求数,建议设为500+),提升API处理能力;使用负载均衡器(如Nginx、HAProxy)分担API Server压力。四、网络优化
net.ipv4.ip_local_port_range
设为1024-65535),提升并发连接能力。五、存储优化
ssd
、hdd
),根据应用需求动态分配存储(如mysql
使用ssd
类);设置PVC的storageClassName
,避免手动指定PV,简化管理。ReclaimPolicy
(Retain
保留数据、Delete
自动删除、Recycle
重新创建),避免数据丢失或资源浪费。六、应用层优化
FROM golang:1.21 AS builder
编译、FROM alpine:3.18
运行),减小镜像大小(建议控制在100MB以内);移除不必要的文件(如测试文件、调试工具)。resources.requests
(如cpu: "500m"
、memory: "512Mi"
)和resources.limits
(如cpu: "1"
、memory: "1Gi"
),避免资源争用;启用Horizontal Pod Autoscaler
(HPA),根据CPU/内存使用率自动扩缩容(如kubectl autoscale deployment nginx --cpu-percent=80 --min=2 --max=10
)。七、监控与日志管理
INFO
,避免DEBUG
日志过多),减少磁盘I/O压力;设置日志轮转(如logrotate
),避免日志文件过大。