温馨提示×

如何提升centos k8s性能

小樊
38
2025-12-31 11:30:33
栏目: 智能运维

CentOS 上提升 Kubernetes 性能的实用清单

一 基础环境与内核优化

  • 使用高性能存储与网络:优先选择 SSD/NVMe10Gbps+ NIC,并按需配置 CNI 插件(如 Calico、Flannel) 与网络策略,减少跨节点与广播流量。
  • 内核与模块:加载 overlay、br_netfilter;开启 net.ipv4.ip_forward=1,启用网桥流量走 iptables 规则;按需调整 net.netfilter.nf_conntrack_max;提高 net.core.rmem_max、net.core.wmem_max;文件系统提高 fs.inotify.max_user_instances、fs.inotify.max_user_watches;内存侧降低 vm.swappiness、按需设置 vm.max_map_count
  • 时间与主机:全集群启用 NTP/Chrony 时间同步,规范 主机名/etc/hosts,避免证书校验与组件通信异常。
  • 容器运行时:优先 containerd/CRI-O,并与 kubelet 的 cgroup driver 保持一致(常见为 systemd)。

二 Kubelet 与节点容量规划

  • 合理设置 Pod 上限:同时配置 podsPerCoremaxPods 时取较小值;注意每个 Pod 至少包含 pause 容器,例如 4 核 × 10 = 40 个 Pod 实际会运行约 80 个容器;超过上限会导致 CPU 升高、调度变慢、内存耗尽、IP 池耗尽
  • 系统资源预留:通过 –kube-reserved–system-reserved 为系统守护进程预留 CPU/内存/临时存储,避免节点资源被业务完全抢占。
  • 镜像与磁盘 GC:设置 –image-gc-high-threshold=70–image-gc-low-threshold=60,防止镜像膨胀导致磁盘压力。
  • 节点可运行 Pod 数:结合 requests/limits亲和/反亲和 规则,控制单节点 Pod 密度拓扑分布,减少热点与干扰。

三 网络与 kube-proxy 优化

  • 服务转发模式:在高并发/大规模连接场景优先 IPVS 模式,较 iptables 有更优的吞吐与连接处理能力。
  • 连接跟踪与内核网络:提升 nf_conntrack_max,并合理设置 net.ipv4.tcp_max_syn_backlog、net.ipv4.tcp_max_tw_buckets,降低丢包与连接建立延迟。
  • 网络策略与拓扑:使用 NetworkPolicy 收敛东西向流量,结合 拓扑分散 规则将副本分布到不同节点/机架,降低故障域影响并提升稳定性。

四 存储与数据面性能

  • 存储选型与配置:为时延敏感型工作负载选择 高 IOPS/低时延SSD/NVMe 或分布式块存储(如 Ceph/GlusterFS),并配置合适的 StorageClass(如基于 SSD 的 class)。
  • 动态供给与回收:使用 动态卷 简化管理,按应用设置 回收策略(Delete/Retain),避免存储泄漏与成本失控。
  • 运行时与镜像:选择 轻量基础镜像(如 Alpine)多阶段构建,缩短拉取与启动时间,降低节点 I/O 与网络压力。

五 控制面与自动伸缩

  • 控制面组件:提升 API Server–max-requests-inflight–max-mutating-requests-inflight 以支撑更高并发;etcd 增加副本数并优化 –heartbeat-interval、–election-timeout 适配网络延迟;必要时部署 外部 etcd 集群 提升可用性与读性能。
  • 弹性伸缩:启用 HPA(CPU/内存/自定义指标)与 Cluster Autoscaler,让应用与节点资源随负载自动扩缩,避免资源闲置或过载。
  • 可观测性:部署 Prometheus + Grafana 监控节点/Pod 资源与网络,使用 EFK/ELK 聚合日志,结合指标与日志定位瓶颈与异常。

0