1. 课程导论:滚动升级概念、节点池升级场景、课程目标与前置知识
1.1 什么是滚动升级?
滚动升级(Rolling Update)是 Kubernetes 中最常用的工作负载更新策略。它通过逐步替换旧版本 Pod 实例为新版本,实现零停机的应用发布。在节点池维度,滚动升级指对集群内一组同质节点(节点池)进行逐批替换,以更新节点操作系统、Kubelet 版本、运行时或内核参数。
核心原则: 始终保持可用副本数不低于期望值,确保业务流量不中断。
1.2 节点池升级场景
在实际运维中,以下场景会触发节点池滚动升级:
| 场景 | 触发原因 | 典型操作 |
|---|---|---|
| 操作系统版本升级 | 安全补丁、内核漏洞修复 | 更换节点镜像,逐台重建 |
| Kubernetes 版本升级 | 集群版本 EOL、新功能需求 | kubelet 版本升级,节点排水后替换 |
| 运行时或组件更新 | 容器运行时(containerd/docker)升级 | 节点初始化脚本变更,滚动重建 |
| 节点规格调整 | 实例类型变更、磁盘扩容 | 修改节点池模板,滚动替换 |
| 安全合规整改 | CIS 基线、等保要求 | 节点加固后重新上线 |
常见误区: 节点池滚动升级不等于直接删除所有节点再创建。必须遵循“排水 → 下线 → 创建 → 就绪”的循环,否则会导致大面积 Pod 中断。
1.3 滚动升级流程概览
下图展示了节点池滚动升级的完整生命周期:
1.4 课程目标
完成本课程后,你将具备以下能力:
- 理解原理: 掌握节点池滚动升级的底层机制与调度策略。
- 熟练操作: 使用 kubectl、Cluster API、云厂商控制台执行滚动升级。
- 快速排障: 识别并解决排水卡死、节点 NotReady、Pod 驱逐失败等常见故障。
- 优化策略: 根据业务场景调整 maxSurge、maxUnavailable、批次大小等参数。
- 自动化集成: 将滚动升级集成到 CI/CD 和 GitOps 工作流中。
1.5 前置知识要求
为了获得最佳学习体验,建议你具备以下基础:
| 领域 | 具体要求 | 推荐学习资源 |
|---|---|---|
| Kubernetes 基础 | 熟悉 Pod、Node、Deployment、Service 核心概念 | Kubernetes 官方文档入门教程 |
| kubectl 操作 | 能使用 kubectl get/describe/drain/cordon 等命令 | kubectl 速查表 |
| Linux 系统管理 | 了解 systemd、内核参数、网络配置 | 《鸟哥的 Linux 私房菜》基础篇 |
| 容器运行时 | 理解 containerd/docker 基本架构 | 容器运行时官方文档 |
| 网络基础 | 了解 CNI、Pod 网络、Service 网络模型 | Kubernetes 网络模型解析 |
学习建议: 如果你对上述前置知识还不够熟悉,建议先花 1-2 周补齐基础。本课程会提供必要的背景说明,但不会从头讲解 Kubernetes 入门知识。
1.6 课程章节结构
本课程共 30 章,分为四个模块:
- 模块一(第 1-5 章): 基础概念与环境搭建,包含节点池管理、滚动升级参数解析。
- 模块二(第 6-15 章): 常见故障场景排障,涵盖排水失败、节点 NotReady、Pod 残留等。
- 模块三(第 16-25 章): 高级排障与性能优化,包括大规模集群升级、自定义控制器排障。
- 模块四(第 26-30 章): 生产最佳实践与自动化,集成 ArgoCD、Cluster API 等工具。
每章均包含故障复现、根因分析、解决步骤和预防措施四个环节,确保学以致用。