1. 课程导论:Kubernetes 调度器架构概览、网络拓扑对调度的影响、eBPF 在可观测性中的角色、容量突增场景定义
1.1 Kubernetes 调度器架构概览
Kubernetes 调度器(kube-scheduler)是控制平面中负责将 Pod 绑定到合适 Node 的核心组件。其工作流程可抽象为 “过滤 → 评分 → 绑定” 三个阶段:
- 过滤(Predicates / Filtering):遍历所有 Node,剔除不满足 Pod 资源请求、端口冲突、污点容忍等硬性条件的节点。
- 评分(Priorities / Scoring):对通过过滤的 Node 执行多维度打分(如资源利用率、亲和性、拓扑分布),选出最优节点。
- 绑定(Binding):将 Pod 与目标 Node 的绑定记录写入 etcd,触发 kubelet 创建容器。
调度器采用 “调度周期” 与 “绑定周期” 分离的插件化架构,每个阶段均可通过调度框架(Scheduling Framework)扩展。默认调度器内置了超过 20 个插件,覆盖资源均衡、节点优选、拓扑约束等场景。
关键指标:调度延迟(Scheduling Latency)通常要求 P99 < 100ms,过滤阶段耗时占比约 60%,评分阶段约 30%,绑定阶段约 10%。
1.2 网络拓扑对调度的影响
在云原生环境中,网络拓扑直接影响 Pod 间的通信延迟与带宽。调度器若忽略网络拓扑,可能导致跨可用区(AZ)或跨机架的大量流量,引发性能抖动与成本上升。
| 拓扑层级 | 典型延迟 | 调度影响 | 优化策略 |
|---|---|---|---|
| 同 Node(本地回环) | < 0.1ms | Pod 间通信最快,优先同节点调度 | PodAffinity / 拓扑键 kubernetes.io/hostname |
| 同机架 / 同 ToR | 0.1 – 0.5ms | 次优,适合有状态服务 | 自定义拓扑键 topology.kubernetes.io/rack |
| 同可用区(AZ) | 0.5 – 2ms | 默认调度单元,平衡容灾与性能 | PodTopologySpread / 反亲和 |
| 跨可用区 | 2 – 10ms | 高延迟,应避免非必要跨区流量 | NodeAffinity + 拓扑感知路由 |
常见陷阱:默认调度器不感知网络拓扑距离。当集群跨多个 AZ 时,若未配置
topologySpreadConstraints,调度器可能将大量 Pod 集中到同一 AZ,造成单点故障与网络瓶颈。
1.3 eBPF 在可观测性中的角色
eBPF(Extended Berkeley Packet Filter)是一种在内核中安全运行沙箱程序的技术,无需修改内核源码或加载内核模块。在 Kubernetes 可观测性领域,eBPF 扮演着 “内核探针” 的角色,能够以极低开销捕获网络、系统调用、文件 I/O 等事件。
- 网络数据包追踪:通过
XDP或tc钩子,实时采集 Pod 间 TCP/UDP 流量、重传率、RTT。 - 系统调用监控:挂载
tracepoint/syscalls,追踪容器进程的文件读写、网络连接建立。 - 资源水位预测:结合
kprobe与perf_event,采集 CPU 调度延迟、内存分配频率、网络队列深度,构建时序特征用于容量预测。
eBPF 优势:相比传统 sidecar 模式(如 Istio 的 Envoy),eBPF 无需注入代理容器,CPU 开销降低 60%–80%,且对应用完全透明。
1.4 容量突增场景定义
容量突增(Capacity Spike)指集群在短时间内(秒级到分钟级)收到远超正常基线的 Pod 创建请求,导致调度器、kubelet 或网络组件过载。典型场景包括:
- 电商大促:秒杀活动开始瞬间,数千个 Pod 同时扩容。
- CI/CD 流水线:代码合并触发批量构建任务,短时间内创建大量 Job Pod。
- 故障恢复:节点宕机后,控制器批量重建 Pod,引发调度风暴。
- 定时任务:整点 CronJob 集中启动,造成资源争抢。
| 指标 | 正常基线 | 容量突增 | 影响 |
|---|---|---|---|
| Pod 创建速率 | 5 – 20 Pods/s | 200 – 1000+ Pods/s | 调度队列积压,调度延迟飙升至秒级 |
| API Server QPS | 500 – 2000 | 5000 – 20000+ | etcd 写入压力增大,请求超时 |
| 网络连接数 | 1000 – 5000 | 50000+ | conntrack 表溢出,丢包 |
| eBPF 事件采样率 | 1k – 10k events/s | 100k – 1M events/s | perf buffer 溢出,数据丢失 |
课程核心目标:通过调度策略优化、网络拓扑感知调度、以及 eBPF 驱动的实时水位预测,在容量突增场景下保障集群稳定性与调度效率。