1. 课程导论:云原生网关演进史、从 Ingress 到 Gateway API 的驱动力、课程目标与学习路径
1.1 云原生网关的演进脉络
云原生网关的演进本质上是流量入口标准化与控制面与数据面解耦的持续过程。从最初的“手动配置负载均衡”到如今的“声明式 Gateway API”,大致经历了四个关键阶段:
| 阶段 | 代表技术 | 核心特征 | 运维痛点 |
|---|---|---|---|
| 1. 手工运维期 | Nginx / HAProxy 配置文件 | SSH 登录、手动 reload、无标准 API | 变更风险高、版本难追溯、无法弹性扩缩 |
| 2. 微服务网关期 | Kong / Zuul / Spring Cloud Gateway | 插件化、路由规则集中管理、支持限流鉴权 | 与 Kubernetes 生态割裂、配置热更新依赖外部存储 |
| 3. Kubernetes Ingress 期 | Nginx Ingress / Traefik / HAProxy Ingress | 声明式资源、CRD 扩展、与 K8s 服务发现集成 | 规范模糊、功能碎片化、跨命名空间路由困难 |
| 4. Gateway API 期 | Gateway API (v1.2+) / Envoy Gateway / Istio | 角色分离、协议原生、可移植、面向服务网格 | ——(当前最佳实践) |
关键洞察: Ingress 在 2015 年随 Kubernetes 1.0 发布,解决了“如何从集群外访问服务”的基本问题,但十年后的今天,其单一路由模型已无法满足多团队、多协议、细粒度流量治理的需求。
1.2 从 Ingress 到 Gateway API 的核心驱动力
推动这一演进的不是单一因素,而是生产环境中的四个结构性矛盾:
- 角色权限模糊: Ingress 资源由单个集群管理员定义,无法区分“基础设施提供者”与“服务所有者”的职责边界。
- 协议支持局限: Ingress 原生仅支持 HTTP/HTTPS,对 TCP、UDP、gRPC、TLS 透传的支持依赖各实现方自行扩展,缺乏统一标准。
- 路由表达能力弱: 不支持跨命名空间路由、权重分流、请求头修改、镜像流量等高级流量治理语义。
- 后端绑定僵化: Ingress 直接绑定 Service,无法表达“同一路由下不同后端版本”或“基于权重/Header 的后端选择”。
一句话总结: Ingress 是“为简单场景设计的入口抽象”,Gateway API 是“面向企业级多团队协作的流量治理框架”。
1.3 课程目标
本课程旨在帮助学员建立从原理到落地的完整知识体系,具体目标如下:
- 理解 Gateway API 核心资源模型: GatewayClass、Gateway、Route(HTTPRoute/TLSRoute/TCPRoute)、BackendRef 的语义与关系。
- 掌握多协议路由与流量治理: 权重分流、请求头修改、镜像流量、跨命名空间路由、TLS 终止与透传。
- 设计云原生网关升级窗口: 从 Ingress 迁移到 Gateway API 的平滑策略、兼容性评估、灰度切换与回滚方案。
- 实战部署与运维: 基于 Envoy Gateway / Istio 的 Gateway API 部署、监控、故障排查与性能调优。
1.4 学习路径与章节地图
课程共 30 章,按“基础 → 进阶 → 实战 → 扩展”四阶段组织:
| 阶段 | 章节范围 | 核心内容 |
|---|---|---|
| 基础篇 | 第 1–8 章 | Gateway API 资源模型、路由规则、TLS 配置、BackendRef 与 Service 绑定 |
| 进阶篇 | 第 9–16 章 | 流量治理(权重/Header/镜像)、跨命名空间路由、Policy Attachment、可移植性 |
| 实战篇 | 第 17–24 章 | Envoy Gateway 部署、Ingress 迁移方案、升级窗口设计、监控与可观测性 |
| 扩展篇 | 第 25–30 章 | 服务网格集成、多集群网关、自定义扩展、性能压测与生产最佳实践 |
1.5 预备知识与学习建议
前置要求: 建议学员具备 Kubernetes 基础操作能力(kubectl、Pod/Service/Deployment 概念)、了解基本网络协议(HTTP/TCP/TLS),有 Ingress 使用经验更佳。
- 动手实践: 每章均提供可复现的 YAML 示例,建议在本地 Kind 集群或云上测试环境同步操作。
- 关注版本: 本课程基于 Gateway API v1.2(GA),部分高级特性(如 BackendTLSPolicy)需实现方支持。
- 推荐工具: kubectl + krew 插件(gateway-api)、Envoy Gateway v1.2+、Istio 1.22+。