Debian 上 Kubernetes 性能调优实战指南
一 内核与系统基线
swapoff -a 并在 /etc/fstab 中注释 swap 条目,避免容器性能抖动与 OOM 误伤。overlay、br_netfilternet.bridge.bridge-nf-call-iptables=1、net.ipv4.ip_forward=1/etc/sysctl.d/99-k8s-optimization.conf 后执行 sysctl --system):
net.core.rmem_max=16777216、net.core.wmem_max=16777216net.core.somaxconn=32768、net.core.netdev_max_backlog=16384net.ipv4.tcp_rmem=4096 87380 16777216、net.ipv4.tcp_wmem=4096 65536 16777216net.ipv4.tcp_max_syn_backlog=3240000、net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_slow_start_after_idle=0net.netfilter.nf_conntrack_max=1048576、net.netfilter.nf_conntrack_tcp_timeout_established=86400vm.swappiness=10、vm.vfs_cache_pressure=50vm.dirty_ratio=10、vm.dirty_background_ratio=5vm.dirty_writeback_centisecs=500、vm.dirty_expire_centisecs=3000vm.transparent_hugepage=neverfs.file-max=2097152、fs.nr_open=2097152fs.inotify.max_user_instances=1024、fs.inotify.max_user_watches=1048576/etc/systemd/system.conf.d/10-limits.conf):
DefaultLimitNOFILE=1048576、DefaultLimitNPROC=1048576、DefaultLimitMEMLOCK=infinitysysctl --system 与 systemctl daemon-reexec 或重启相关服务。二 容器运行时与 kubelet 调优
/etc/containerd/config.toml 或 containerd-config-extra):
max_concurrent_downloads=10SystemdCgroup=true(与 kubelet 保持一致)overlayfs(通用场景性能与稳定性较好)--cgroup-driver=systemd--enforce-node-allocatable=pods,kube-reserved,system-reserved--kube-reserved=cpu=200m,memory=512Mi、--system-reserved=cpu=500m,memory=1Gi--max-pods(依据 CNI/节点网络与 kube-proxy 能力评估)max_concurrent_downloads)三 网络与 CNI 优化
nf_conntrack_max、nf_conntrack_tcp_timeout_established)nf_conntrack_max 与合理超时四 控制面与 etcd 性能
--quota-backend-bytes=8589934592(8GB),定期执行压缩与碎片整理--max-requests-inflight=1500、--max-mutating-requests-inflight=1000--enable-watch-cache=true--kube-api-qps=100、--kube-api-burst=200五 调度与弹性扩缩容