源码深度学习 · 零基础友好 · higress-group 3/5

Higress 源码学习

20 天 · 每天 30 分钟 · 逐层读懂阿里开源的 AI 原生 API 网关 Higress(Go)——它站在 Envoy(数据面)+ Istio(控制面)之上,加了多注册中心、Wasm 插件生态、AI 网关能力。学完前两站,来看它们怎么组装成一个产品。

00

开篇 · 这是个什么项目

Higress 是阿里开源的AI 原生 API 网关(Go 编写)。它站在你学过的 Envoy + Istio 之上:用 Envoy 做数据面、Istio(istiod) 做 xDS 生成,Higress 自己加了一个控制器(controller)——把用户的 Ingress / 自定义 CRD 翻译成 Istio 配置,通过 xDS-over-MCP 喂给 istiod。此外它还有多注册中心服务发现(Nacos/ZK/Consul…)、丰富的 Wasm 插件生态、以及专为 AI 场景(LLM 代理、Token 限流)设计的能力。

🎯 一句话:Higress = Ingress 控制器(Ingress/CRD → Istio 配置,经 MCP 喂 istiod) + 多注册中心服务发现 + Wasm 插件生态(含 AI 插件) + 内嵌 istiod + Envoy。用户写 Ingress → Higress 翻译 → istiod 生成 xDS → Envoy 执行 → 请求经 Wasm 插件处理(含 AI 路由)。

🎛️

Ingress 控制器

Ingress/CRD → Istio 配置,经 xDS-over-MCP 喂 istiod。

🔍

多注册中心

Nacos/ZK/Eureka/Consul/K8s/DNS,不止 K8s。

🧩

Wasm 插件生态

wasm-go SDK 写插件,热插拔,丰富的官方插件。

🤖

AI 网关

LLM 代理、模型路由、Token 限流、AI 统计缓存。

与前两站的关系(承上):Envoy 课学了数据面(执行 xDS),Istio 课学了控制面(生成 xDS + xDS-over-MCP 接收端)。Higress 是"xDS-over-MCP 的发送端 + 产品化封装"——它的 controller 生成配置喂给 istiod,并加上多注册中心、插件、AI 能力。建议先学完 Envoy + Istio 再学本课。源码在 higress-group/higress/pkg/ingress/(控制器核心)。
01

架构全景(动起来看)

下图那颗发光小球是"用户配置 → Higress 控制器 → istiod → Envoy"的旅程。从上到下:用户输入 → Higress 控制器 → istiod → 数据面。

L1 · 用户输入 + 服务来源
IngressK8s 标准
Higress CRDMcpBridge/WasmPlugin
Nacos/ZK多注册中心
L2 · Higress 控制器
Ingress Controller翻译
Registry服务发现
ConfigStore聚合
MCP Server喂 istiod
L3 · istiod(内嵌)
xDS 生成(Istio 课)
ADS 客户端收 MCP
EnvoyFilter插 Wasm
L4 · Envoy 数据面 + 插件
Envoy执行(Envoy 课)
Wasm 插件ai-proxy 等
golang-filter原生扩展

Higress 的心智模型是"用户配置 → 控制器翻译 → istiod 生成 xDS → Envoy 执行 + 插件增强":

写 Ingress/CRD 控制器翻译成 Istio 配置 MCP 喂 istiod→生成 xDS Envoy 执行+Wasm 插件
为什么在 Istio 上再套一层 Higress? Istio 面向"服务网格"(东西向流量),配置用 VirtualService 等相对复杂。Higress 面向"API 网关/Ingress"(南北向流量),让你用简单的 K8s Ingress + 注解就能配,还加了多注册中心、Wasm 插件、AI 能力。它复用 Istio 成熟的 xDS 生成,但对用户暴露更友好的接口 + 更丰富的功能。这是"站在巨人肩膀上做产品"。
02

怎么用这份教程

⏱️

每天 30 分钟

一天一个独立页面,跟着"今日小结 + 动手"收尾。

👶

零基础友好

不假设你懂 K8s/网关/Go,术语首次出现都有大白话解释。

📍

精确到行号

关键代码标 文件:行号,可在真源码里跳转对照。

一条主线:从"AI 网关是什么、控制器怎么翻译配置喂 istiod",到"多注册中心服务发现",到"Wasm 插件怎么写和加载",最后是"AI 网关能力、hgctl、部署"。强烈建议先学完 Envoy + Istio。
W1

第 1 周 · 全景与控制器

全景、启动、Ingress 控制器、配置翻译、xDS-over-MCP
01

项目全景(AI 云原生网关)

Higress 是什么、基于 Istio+Envoy、和前两站的关系。

≈30 min开始学 →
02

启动流程

cmd/higress → pkg/bootstrap,控制器怎么 boot。

≈30 min开始学 →
03

Ingress 控制器核心

watch Ingress/CRD,翻译成 Istio 配置对象。

≈30 min开始学 →
04

配置翻译

Ingress → VirtualService/Gateway/EnvoyFilter/DR。

≈30 min开始学 →
05

xDS-over-MCP

Higress 怎么把配置喂给 istiod(发送端)。

≈30 min开始学 →
W2

第 2 周 · 服务发现与配置

多注册中心、McpBridge、Nacos、ServiceEntry、证书
06

多注册中心概览

Nacos/ZK/Eureka/Consul/K8s/DNS 统一抽象。

≈30 min开始学 →
07

McpBridge + reconcile

配置注册源的 CRD,怎么创建注册表 watcher。

≈30 min开始学 →
08

Nacos 注册表

从 Nacos 发现服务的实现。

≈30 min开始学 →
09

服务 → ServiceEntry

发现的服务怎么变成 Istio ServiceEntry。

≈30 min开始学 →
10

配置模型 + 证书管理

config 流转、TLS 证书自动化(ACME)。

≈30 min开始学 →
W3

第 3 周 · Wasm 插件

插件系统、wasm-go SDK、写插件、实战、golang-filter
11

Wasm 插件系统概览

插件生态、和 Envoy proxy-wasm 的关系。

≈30 min开始学 →
12

wasm-go SDK

写 Higress 插件的 Go SDK、封装、生命周期。

≈30 min开始学 →
13

写一个插件

HttpContext/OnHttpRequestHeaders 逐行拆解。

≈30 min开始学 →
14

实战插件

key-auth/限流等真实插件的实现。

≈30 min开始学 →
15

golang-filter

原生 Go 扩展(非 Wasm)+ mcp-server。

≈30 min开始学 →
W4

第 4 周 · AI 网关/部署

ai-proxy、AI 增强、hgctl、部署、收官
16

AI 网关能力

ai-proxy:统一代理多家 LLM、模型路由。

≈30 min开始学 →
17

AI 增强插件

Token 限流、AI 统计、语义缓存、内容安全。

≈30 min开始学 →
18

hgctl CLI

安装、插件管理等命令。

≈30 min开始学 →
19

部署 + 内嵌 istio/envoy

helm/docker/all-in-one,怎么打包 istiod+Envoy。

≈30 min开始学 →
20

收官串讲

完整 AI 请求路径 + higress-group 三站串讲。

≈30 min开始学 →

Higress 全部 20 天已就绪!(higress-group 系列 3/5)建议先学 Envoy + Istio 再学本课。