2. K8s集群生命周期基础:集群创建、升级、扩缩容、销毁的标准流程与关键节点

Kubernetes集群的生命周期管理是平台运维的基石。本章将围绕集群从“生”到“死”的四个核心阶段——创建、升级、扩缩容、销毁,梳理标准操作流程与必须关注的关键节点。理解这些基础流程,是后续利用Helm治理配置漂移的前提。

2.1 集群创建:从零到可调度

集群创建不仅仅是运行 kubeadm init 或点击云控制台按钮,它涉及基础设施、控制平面、工作节点、网络与存储的完整编排。

关键原则: 创建阶段即应引入“基础设施即代码”(IaC)与版本控制,避免后续配置漂移。

标准创建流程

  1. 基础设施准备: 规划网络CIDR、节点规格、操作系统镜像、安全组规则。
  2. 控制平面初始化: 部署etcd集群、API Server、Controller Manager、Scheduler。
  3. 工作节点加入: 节点认证、kubelet配置、容器运行时(containerd)就绪。
  4. 网络插件安装: 部署CNI插件(如Calico、Cilium),确保Pod网络互通。
  5. 附加组件部署: CoreDNS、Metrics Server、Ingress Controller、存储类(StorageClass)。
  6. 集群验证: 运行 kubectl get nodes、部署测试Pod、检查集群健康状态。

关键节点清单

阶段 关键节点 常见风险
基础设施 网络CIDR不重叠、节点SSH密钥分发 Pod网段与VPC网段冲突
控制平面 etcd集群成员健康、API Server证书有效期 证书过期导致集群不可用
节点加入 kubelet引导令牌(Bootstrap )有效期 令牌过期导致节点无法加入
网络插件 CNI DaemonSet Pod运行状态、网络策略生效 Pod间网络不通
集群创建标准流程 基础设施准备 控制平面初始化 工作节点加入 网络插件安装 附加组件部署 集群验证 💡 关键:创建阶段即使用 IaC 工具(Terraform / ClusterAPI)管理基础设施,避免手工操作导致的配置漂移。 证书有效期、etcd 快照、CNI 版本应在创建时记录到集群元数据。

2.2 集群升级:版本演进与安全合规

Kubernetes版本迭代频繁,安全补丁与功能更新要求集群必须保持版本合规。升级的核心挑战在于控制平面与节点版本偏差以及工作负载兼容性。

版本偏差策略: kube-apiserver 版本必须 ≥ kube-controller-manager / kube-scheduler / kubelet 版本。kubelet 版本不能比 API Server 版本低超过两个次要版本(n-2)。

标准升级流程

  • 前置检查: 确认当前集群版本、目标版本、API弃用资源清单、备份etcd快照。
  • 控制平面升级: 逐节点升级(或滚动升级)API Server → Controller Manager → Scheduler → etcd。
  • 工作节点升级: 节点排水(drain)→ 升级kubelet与kube-proxy → 节点恢复调度(uncordon)。
  • 后置验证: 检查集群组件版本、运行 kubectl version、验证核心工作负载健康。

关键节点对比

阶段 关键节点 检查命令 / 工具
前置检查 API弃用资源、etcd快照完整性 kubectl convert、etcdctl snapshot save
控制平面 API Server版本升级、etcd成员健康 kubeadm upgrade plan
工作节点 Pod中断预算(PDB)、节点排水 kubectl drain、kubectl get pdb
后置验证 集群组件版本、节点版本一致性 kubectl get nodes -o wide

2.3 集群扩缩容:弹性与成本

扩缩容分为节点级(增加/减少工作节点)和控制平面级(高可用场景)。节点级扩缩容通常依赖Cluster Autoscaler或云厂商自动伸缩组。

最佳实践: 节点扩缩容应与Pod资源请求(Requests)和限制(Limits)联动,避免节点资源碎片化。

标准扩缩容流程

  1. 触发条件: 集群资源不足(CPU/Memory)或利用率过低。
  2. 节点池调整: 修改节点池期望实例数或触发Cluster Autoscaler。
  3. 节点初始化: 新节点自动加入集群,kubelet注册,CNI配置。
  4. Pod调度: Pending状态的Pod被调度到新节点。
  5. 缩容前保护: 节点排水、PDB检查、驱逐Pod。

扩缩容关键指标

指标 说明 建议阈值
节点CPU利用率 触发扩容的CPU平均利用率 > 70%
节点内存利用率 触发扩容的内存平均利用率 > 75%
Pod Pending数量 因资源不足Pending的Pod数 > 0 持续5分钟
缩容冷却时间 缩容后避免频繁震荡的等待时间 10-15分钟

2.4 集群销毁:安全下线与数据清理

集群销毁是生命周期中最容易被忽视的阶段。不规范销毁可能导致云资源残留、数据泄露或成本持续产生。

安全红线: 销毁前必须确认所有持久化数据(PVC、etcd快照、日志)已备份或迁移,且负载已完全迁移。

标准销毁流程

  • 负载迁移: 将工作负载迁移至其他集群或环境,确认流量已切换。
  • 数据备份: 导出etcd快照、PVC数据、ConfigMap/Secret清单。
  • 资源清理: 删除所有工作负载、PVC、Service、Ingress、Namespace。
  • 节点下线: 节点排水后从集群中移除,释放云资源(虚拟机、磁盘、负载均衡器)。
  • 控制平面销毁: 删除API Server、etcd实例,释放关联资源。
  • 最终确认: 检查云控制台/API,确保无残留资源。

销毁前检查清单

检查项 验证方式 状态
工作负载已迁移 确认目标集群流量正常 ✅ 必须
etcd快照已导出 检查快照文件完整性 ✅ 必须
PVC数据已备份 确认备份工具(Velero)完成 ✅ 必须
云资源已释放 云控制台无残留实例/磁盘/LB ✅ 必须
DNS记录已清理 检查域名解析记录 ✅ 建议
K8s集群生命周期四阶段 创建 基础设施 + 控制平面 升级 版本偏差 + 滚动升级 扩缩容 弹性伸缩 + 成本优化 销毁 数据备份 + 资源清理 💡 生命周期管理核心:每个阶段都应记录集群元数据(版本、组件、配置)到版本控制系统。 Helm 在升级与扩缩容阶段用于管理应用配置,在销毁阶段用于清理 Helm Release。 配置漂移审计应覆盖所有阶段,确保集群状态与声明式配置一致。

2.5 关键节点总结与配置漂移关联

集群生命周期的每个阶段都存在配置漂移的风险。下表总结了各阶段最易产生漂移的关键节点,以及Helm在其中的治理作用。

生命周期阶段 易漂移节点 Helm治理作用
创建 CNI版本、附加组件配置、节点标签 Helm Chart管理附加组件,确保版本一致
升级 API弃用资源、kubelet配置、RBAC规则 Helm Rollback快速回退,helm diff审计变更
扩缩容 节点污点(Taints)、资源配额、PodDisruptionBudget Helm Values管理节点池配置,避免手动修改
销毁 PVC残留、Helm Release未清理、云资源残留 helm uninstall 清理Release,结合IaC清理云资源
核心结论: 集群生命周期管理不是一次性操作,而是持续治理的过程。每个阶段的标准流程都应包含“配置审计”环节,确保集群状态与Git仓库中的声明式配置完全一致。Helm作为K8s的包管理器,在升级、回滚、配置对比方面提供了天然的工具链支持。