1. 课程导论:为什么需要节点扩容?资源调度与容量规划的关系,课程目标与学习路径

1.1 为什么需要节点扩容?

在 Kubernetes 集群的日常运营中,节点扩容(Node Scaling)是最常见的运维操作之一。当集群现有工作节点无法承载 Pod 调度请求时,必须通过增加节点来恢复或提升集群容量。触发节点扩容的核心场景包括:

  • 资源耗尽:节点 CPU、内存或本地存储使用率持续超过阈值(如 85%),导致 Pod 调度失败或 Eviction。
  • 突发流量:业务高峰期(如电商大促、秒杀活动)导致 Deployment 副本数激增,现有节点无法容纳新增 Pod。
  • 节点故障:部分节点因硬件故障、内核崩溃或网络分区变为 NotReady,剩余节点容量不足。
  • 资源碎片化:长期运行后,节点上剩余资源碎片无法满足单个 Pod 的 Request,造成调度死锁。
  • 合规与隔离:需要将特定工作负载(如 GPU 任务、敏感数据)调度到专用节点池,需新增节点。
关键指标:集群扩容的触发通常依赖 cluster-autoscaler 或自定义监控。当 Pending Pod 数量持续大于 0 且节点资源利用率超过预设水位线时,扩容流程自动启动。

1.2 资源调度与容量规划的关系

资源调度与容量规划是集群管理的两个核心维度,二者相互依赖、协同运作。下表梳理了它们的关键差异与协作点:

维度 资源调度(Resource Scheduling) 容量规划(Capacity Planning)
关注点 Pod 与节点的匹配(Request/Limit、亲和性、污点容忍) 集群整体资源供给与业务需求的中长期匹配
时间尺度 秒级 ~ 分钟级(实时调度决策) 天级 ~ 月级(容量预测与预算)
核心工具 Scheduler、Descheduler、Node Affinity、Topology Spread Cluster Autoscaler、VPA、成本分析、资源预留策略
失败后果 Pod 调度失败、Pending、资源争抢 集群过载、扩容延迟、成本失控
协同点 调度器将 Pending Pod 信息反馈给 Autoscaler;容量规划为调度策略提供节点池水位上限

在实际运维中,资源调度负责“如何把 Pod 放到合适的节点上”,而容量规划负责“何时需要增加节点以及增加多少”。两者通过 cluster-autoscaler 形成闭环:调度器发现无法调度 Pod → Autoscaler 触发扩容 → 新节点加入 → 调度器重新分配 Pod。

最佳实践:不要将容量规划视为一次性工作。建议每季度根据业务增长曲线、Pod 资源规格变化、节点利用率趋势重新评估节点池配置,避免“扩容滞后”或“过度预留”。

1.3 节点扩容的核心流程(SVG 图)

下图展示了从 Pod 调度失败到节点扩容完成的完整闭环流程,包含调度器、Autoscaler、云商 API 和节点注册四个关键阶段:

节点扩容核心流程 节点扩容闭环流程 ① Pod 调度失败 节点资源不足 / 亲和性不满足 ② Autoscaler 评估 检查 Pending Pod & 节点池水位 ③ 云商 API 创建节点 启动 VM / 加入节点池 ④ 节点注册 & 就绪 kubelet 注册 / 状态 Ready ⑤ 调度器重新分配 Pending Pod 绑定新节点 说明: • 步骤①→②:调度器将无法调度的 Pod 标记为 Pending,Autoscaler 定期扫描 Pending Pod。 • 步骤③→④:新节点加入集群后需通过 kubelet 注册、CNI 网络就绪、kube-proxy 配置等步骤。

1.4 课程目标与学习路径

本课程旨在帮助学员建立从资源调度到容量规划的完整知识体系,掌握节点扩容的实战技能。课程分为四个模块:

  1. 基础篇(第 1-8 章):理解 Kubernetes 调度原理、节点资源模型、Request/Limit 机制,以及 cluster-autoscaler 的安装与配置。
  2. 策略篇(第 9-16 章):深入节点池设计、污点与容忍、拓扑分布约束、PodDisruptionBudget 等高级调度策略。
  3. 容量篇(第 17-24 章):容量预测模型、资源预留策略、成本优化、多集群容量管理。
  4. 实战篇(第 25-30 章):基于真实业务场景的扩容演练、故障排查、性能调优与自动化运维。
前置要求:学员需具备 Kubernetes 基础操作能力(kubectl 常用命令、Pod/Deployment/Service 概念),了解 Linux 资源管理(cgroup、CPU/Memory 限制)。建议先完成《Kubernetes 入门与核心概念》课程。

通过本课程学习,你将能够:

  • 独立设计并实施节点扩容方案,应对业务流量波动。
  • 配置 cluster-autoscaler 与自定义指标,实现自动化弹性伸缩。
  • 分析集群资源碎片,优化调度策略以提升节点利用率。
  • 制定容量规划模型,平衡成本与可用性。

1.5 课程核心概念关系(SVG 图)

下图展示了本课程涉及的三大核心概念——资源调度、容量规划、节点扩容——之间的依赖与协同关系:

课程核心概念关系 资源调度 · 容量规划 · 节点扩容 关系图 节点扩容 Node Scaling 资源调度 Scheduling 容量规划 Capacity Planning 触发 提供容量 指导 反馈数据 关系解读: • 资源调度是节点扩容的“触发器”:调度失败 → 扩容需求产生。 • 容量规划是节点扩容的“导航仪”:决定扩容规模、时机和节点规格。