主题
第八部分 性能调优与大规模运维
大规模 Kubernetes 集群面临 etcd、API Server、Scheduler、网络等多方面挑战。本部分讲解性能调优和大规模运维实践。
第 29 章 etcd 调优
29.1 etcd 的重要性
etcd 是 K8s 的数据库,所有集群状态都存储在 etcd 中。etcd 性能直接影响整个集群。
29.2 etcd 性能指标
- 提交延迟(commit duration)
- 应用延迟(apply duration)
- WAL 同步时间
- 数据库大小
- leader 变更次数
29.3 etcd 调优建议
- 使用 SSD 磁盘
- etcd 独立节点部署
- 增加内存
- 定期压缩和碎片整理
- 限制事件和 Pod 数量
bash
# 查看 etcd 状态
ETCDCTL_API=3 etcdctl endpoint status --write-out=table --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key
# 压缩历史版本
ETCDCTL_API=3 etcdctl compact <REVISION>
# 碎片整理
ETCDCTL_API=3 etcdctl defrag29.4 本章练习
- 查看 etcd 状态指标。
- 执行 etcd 压缩和碎片整理。
- 了解 etcd 的告警和配额机制。
第 30 章 API Server 与 Scheduler 优化
30.1 API Server 优化
- 启用缓存和分页
- 限制 List 请求
- 使用 Watch 替代轮询
- 调整 --max-requests-inflight
- 水平扩展 API Server
30.2 Scheduler 优化
- 使用 ipvs 模式减少 iptables 规则数量
- 合理设置节点资源
- 避免过多空跑 Pod
- 使用自定义调度器分担压力
30.3 本章练习
- 查看 API Server 的 QPS 和延迟。
- 分析 Scheduler 的调度延迟。
- 了解 K8s 大集群规模限制。
第 31 章 大规模集群运维实践
31.1 大集群规模参考
| 对象 | 建议上限 |
|---|---|
| 节点 | 5000 |
| Pod | 150000 |
| 容器 | 300000 |
| Service | 10000 |
31.2 大规模挑战
- etcd 性能瓶颈
- API Server 负载高
- 调度延迟增加
- 网络广播域大
- 监控数据爆炸
31.3 解决方案
- 多集群拆分
- 使用联邦或多集群编排
- 优化事件保留策略
- 使用高效 CNI
- 分片 Prometheus
31.4 本章练习
- 了解 K8s 官方大集群支持上限。
- 设计一个 1000 节点集群的架构。
- 列出大规模集群需要重点监控的指标。
第八部分总结
完成本阶段学习后,你应该能够:
- 调优 etcd、API Server、Scheduler
- 理解大规模集群的挑战和解决方案
- 设计可扩展的 K8s 架构
进入第九部分:综合实战与面试进阶。