Ubuntu上Kubernetes性能优化技巧
kubectl top nodes监控利用率;为节点配置足够CPU(如控制平面节点≥4核)和内存(如≥4GB),避免资源瓶颈。kubectl patch pvc调整持久卷访问模式(如ReadWriteOnce用于单节点访问),优化存储性能。taskset命令)提高内存访问效率,减少跨NUMA节点的内存访问延迟。/etc/sysctl.conf并执行sysctl -p生效,关键参数包括:net.core.somaxconn=65535(增大监听队列长度,应对高并发连接)、net.ipv4.tcp_max_syn_backlog=65535(增大SYN队列大小,减少连接超时)、net.ipv4.tcp_tw_reuse=1(启用TIME-WAIT连接复用,降低连接建立开销)、net.ipv4.ip_local_port_range=1024 65535(扩大本地端口范围,支持更多并发连接)。vm.swappiness=10(降低系统使用交换分区的倾向,优先使用物理内存)、vm.max_map_count=262144(增大虚拟内存映射区域数量,满足容器存储需求,如Elasticsearch)。/etc/default/kubelet或/var/lib/kubelet/config.yaml,增大--concurrent-endpoints=1000(提升端点并发处理能力)、--max-pods=110(根据节点资源调整单节点最大Pod数量,避免过多Pod导致资源争抢);设置--image-gc-high-threshold=85和--image-gc-low-threshold=80(自动清理未使用镜像,释放磁盘空间);配置--eviction-hard=memory.available<500Mi,nodefs.available<10%(节点驱逐策略,避免资源耗尽导致Pod崩溃)。IPVS模式(替代iptables),提升大规模集群(>1000 Pod)的网络转发性能;调整--conntrack-max=1000000(增大连接跟踪表大小,避免连接数过多导致丢包)、--conntrack-tcp-timeout-established=3600s(延长已建立连接的跟踪时间,减少无效连接占用资源)。--max-mutating-requests-inflight=200(限制变更请求并发数,保证稳定性)、--watch-cache-size=10000(增大Watch缓存,提升Watch请求性能)。ssd、hdd),匹配不同负载需求。nodeSelector或affinity规则),减少网络传输延迟。kubectl run和kubectl scale模拟高负载场景,评估集群性能;根据测试结果调整资源配置(如增加Pod副本数、升级节点规格)。resources.requests(最低保障)和resources.limits(上限),避免资源争用;使用kubectl autoscale自动调整Pod数量,保持最佳性能。