适用场景
集群能跑起来只是开始。生产环境的重点是"可持续":节点怎么下线维护、etcd 怎么备份、资源怎么配额、证书怎么续。
配置步骤(节点维护与下线)
kubectl cordon node01
kubectl drain node01 --ignore-daemonsets --delete-emptydir-data
# 维护完成后恢复
kubectl uncordon node01
kubectl get nodes
关键参数与建议
- 节点维护:先 cordon 再 drain,PodDisruptionBudget 保证可用性
- etcd 备份:定期快照 + 恢复演练(etcd 挂了集群就没了)
- 配额与限制:命名空间级 ResourceQuota + LimitRange,防止单应用吃满
- 扩缩容:HPA 按 CPU/自定义指标,配合 PDB 与节点容量
- 证书与版本:kubelet/etcd 证书到期时间纳入监控,升级走官方流程
容易踩的坑
- 直接 drain 未设 PDB,业务可能同时下线多个副本
- 忽略 DaemonSet 与本地存储 Pod,卡住 drain
- 维护后忘记 uncordon,节点一直不可调度
验证与巡检
kubectl get pdb -A
kubectl get nodes
- 巡检:PDB 覆盖核心应用、节点维护后全部 Ready
小结
集群运维的三个"必须演练":etcd 恢复、节点下线、证书续期。三件事都演练过,才算能兜住生产。
> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。