1. 课程导论:资源预留的背景与挑战、准入控制与资源画像的核心概念、课程目标与学习路径

1.1 资源预留的背景与挑战

在 Kubernetes 集群中,资源管理是保障服务质量(QoS)与集群效率的核心难题。传统做法依赖 静态资源预留(如通过 requests 和 limits 直接指定),但这种方式面临三大结构性矛盾:

  • 资源碎片化:静态预留导致大量资源被“锁定”但未被实际使用,集群整体利用率通常低于 40%。
  • 过载风险:突发流量或高优先级作业无法获得即时资源,引发 Pod 驱逐或 OOMKill。
  • 运维复杂度:人工调整预留参数需要反复压测与调优,难以适应动态负载。
关键指标对比: 静态预留 vs 动态预留
维度 静态预留(传统) 动态预留(本课程)
资源利用率 30% – 45% 60% – 85%
响应延迟 秒级(需人工介入) 毫秒级(自动调整)
过载保护 被动(OOMKill) 主动(准入拦截 + 重调度)
运维成本 高(反复压测) 低(数据驱动)

1.2 准入控制与资源画像的核心概念

本课程围绕两个核心技术支柱展开:准入控制(Admission Control) 与 资源画像(Resource Profiling)。两者协同工作,形成“感知-决策-执行”的闭环。

1.2.1 准入控制:资源预留的执行关口

Kubernetes 准入控制器在 API 请求持久化之前拦截并校验资源声明。本课程聚焦 MutatingAdmissionWebhook 与 ValidatingAdmissionWebhook,实现资源预留的动态注入与校验。

  • Mutating Webhook:根据资源画像结果,自动修改 Pod 的 requests 和 limits。
  • Validating Webhook:校验预留策略是否违反集群资源配额或 QoS 约束。

1.2.2 资源画像:数据驱动的预留依据

资源画像通过历史监控数据(CPU、内存、网络 I/O)构建 Pod 的资源使用特征模型。核心输出包括:

  • 基线资源需求:P50/P90/P99 分位的资源使用量。
  • 突发特征:峰值持续时间、增长速率、周期模式。
  • 资源冗余度:当前预留与实际使用的差值,用于优化预留策略。
实践要点: 资源画像数据源通常来自 Prometheus 或 Metrics Server,采样周期建议 ≤ 30 秒,窗口长度 ≥ 7 天以覆盖完整业务周期。
准入控制与资源画像协同架构 Prometheus / Metrics Server 历史监控数据 资源画像引擎 特征提取 / 模型训练 预留策略决策 动态阈值 / 冗余度计算 Kubernetes 准入控制层 MutatingWebhookConfiguration + ValidatingWebhookConfiguration Pod 资源声明(动态注入) requests / limits / QoS Class 反馈闭环(预留效果评估)

1.3 课程目标与学习路径

本课程旨在培养学员独立设计、实现并优化 准入控制框架下资源画像驱动的 Pod 资源预留系统。完成本课程后,学员将具备以下能力:

  1. 理解核心原理:掌握资源画像的数学模型(分位统计、时间序列预测、异常检测)与准入控制的工作机制。
  2. 工程实现能力:使用 Go 语言开发自定义 Admission Webhook,集成 Prometheus 数据源,构建资源画像流水线。
  3. 策略调优:基于真实负载数据调整预留冗余度、突发容忍窗口、QoS 降级策略。
  4. 生产级部署:配置高可用 Webhook、灰度发布、监控告警与回滚机制。
前置要求: 学员需具备 Kubernetes 基础操作能力(Pod/Deployment/Service)、Go 语言基础语法、PromQL 查询基础。建议先完成《Kubernetes 入门与实战》或同等课程。

1.3.1 课程章节总览

模块 章节范围 核心产出
基础篇 第 1 – 5 章 资源画像数据采集与特征工程
核心篇 第 6 – 15 章 Admission Webhook 开发与预留策略引擎
进阶篇 第 16 – 24 章 多维度画像融合、QoS 保障、成本优化
实战篇 第 25 – 30 章 生产级部署、混沌工程验证、案例复盘
课程学习路径与知识依赖 基础篇 第 1 – 5 章 数据采集 / 特征工程 核心篇 第 6 – 15 章 Webhook / 策略引擎 进阶篇 第 16 – 24 章 多维画像 / QoS 实战篇 第 25 – 30 章 部署 / 混沌 / 复盘 学习建议 每章完成后完成对应 Lab 建议使用 kind 或 minikube 搭建实验环境

1.4 本章小结