1. 课程导论:控制平面驱动 Calico 准入策略的背景、课程目标与学习路径
1.1 为什么需要控制平面驱动的准入策略?
在 Kubernetes 生产环境中,网络策略(NetworkPolicy)是保障微服务间通信安全的核心手段。然而,原生 Kubernetes NetworkPolicy 存在明显的局限性:
- 策略粒度粗:仅支持 IP、端口、标签选择器,无法感知 HTTP 方法、路径、JWT 等应用层信息。
- 运维复杂度高:大规模集群中,策略数量激增,人工审计与排错困难。
- 缺乏动态性:策略变更后,生效延迟不可控,无法满足实时准入需求。
Calico 作为业界领先的 Kubernetes 网络与安全方案,通过其 控制平面驱动(Control Plane Driven) 的准入策略引擎,将策略决策点从数据面迁移至控制面,实现了更灵活、更细粒度的流量准入控制。本课程将深入剖析这一架构的核心原理、接口调用方式与性能调优方法。
核心洞察: 控制平面驱动意味着策略评估不再依赖数据面的包处理流水线,而是由 API 服务器、准入 Webhook 和策略控制器协同完成。这为引入 L7 策略、外部身份认证和动态策略更新打开了大门。
1.2 课程目标
完成本课程后,你将能够:
| 目标领域 | 具体能力 | 对应章节 |
|---|---|---|
| 架构理解 | 掌握 Calico 控制平面准入策略的组件架构、数据流与决策模型 | 第 2-4 章 |
| 接口调用 | 熟练使用 Felix API、Kubernetes CRD 及 gRPC 接口进行策略配置与查询 | 第 5-8 章 |
| 性能调优 | 诊断策略评估延迟、优化 API 调用频率、调整缓存与并发参数 | 第 9-12 章 |
| 生产实践 | 设计高可用策略下发方案、编写自动化测试与监控告警规则 | 第 13-15 章 |
1.3 学习路径与知识体系
本课程采用“基础 → 接口 → 调优 → 实战”的递进式结构。下图展示了完整的知识体系与章节依赖关系:
1.4 课程特色与前置知识
本课程面向有一定 Kubernetes 使用经验的运维、开发与架构师。建议具备以下前置知识:
- 熟悉 Kubernetes 核心概念(Pod、Service、Namespace、NetworkPolicy)。
- 了解 Calico 基本安装与配置(Felix、BIRD、Typha)。
- 具备基本的 Go 或 Python 编程能力(用于接口调用实验)。
学习建议: 每章结束后,建议在测试集群中动手实践提供的代码示例。本课程配套的 GitHub 仓库包含了完整的实验环境搭建脚本与性能压测工具。
1.5 课程内容概览
| 模块 | 章节范围 | 核心内容 |
|---|---|---|
| 基础篇 | 第 2-4 章 | 控制平面架构、Felix 与 Typha 角色、策略评估模型 |
| 接口篇 | 第 5-8 章 | Felix REST API、Kubernetes CRD(GlobalNetworkPolicy/NetworkPolicy)、gRPC 流式接口 |
| 调优篇 | 第 9-12 章 | API 延迟分析、缓存命中率优化、并发与限流配置、性能基准测试 |
| 实战篇 | 第 13-15 章 | 多集群策略管理、CI/CD 集成、监控与告警体系搭建 |
1.6 一个典型的控制平面准入场景
为了让你快速建立直观认识,下面展示一个典型的控制平面驱动准入策略的调用流程:
这个流程展示了控制平面如何将策略决策与数据面执行解耦。在后续章节中,我们将逐一拆解每个组件的接口细节与性能瓶颈。
注意: 在生产环境中,Webhook 的超时设置、Policy Controller 的缓存大小以及 Felix 的同步频率是影响端到端延迟的关键参数。第 9-12 章将专门针对这些参数进行调优。