Higress网关架构深度解析:核心组件与工作原理
引言
在现代云原生架构中,API网关扮演着至关重要的角色,它不仅是流量的入口,更是微服务架构中的关键基础设施。本文将深入解析Higress网关的架构设计,帮助读者全面理解其核心组件和工作原理。
Higress整体架构概述
Higress是基于Envoy和Istio构建的轻量级网关服务,通过二次开发和功能增强,提供了更符合云原生场景的网关解决方案。其核心架构由三个主要组件构成:
- Higress Console:管理控制台
- Higress Controller:控制平面核心
- Higress Gateway:数据平面实现
这三个组件协同工作,共同构成了Higress网关的完整解决方案。
Higress Console详解
Higress Console作为网关的管理界面,提供了直观的配置管理能力。其核心功能包括:
- 路由配置管理
- 插件配置管理
- 域名与证书管理
- 服务发现配置
Higress Admin SDK
Higress Admin SDK是从控制台中剥离出来的配置管理组件,主要特点包括:
- 多语言支持:目前提供Java版本,要求JDK 17+
- 功能全面:支持服务来源、路由、域名、证书等全生命周期管理
- 易于集成:可作为独立组件与外部系统对接
Higress Controller深度解析
作为Higress的控制平面核心,Controller承担着配置管理和服务发现的重任。它由两个关键子组件构成:
Discovery组件
Discovery组件源自Istio Pilot-Discovery,是服务网格的核心控制平面。其核心功能架构如下:
-
配置控制器(Config Controller):
- Kubernetes控制器:直接对接K8s API
- Gateway API控制器:支持标准Gateway API
- MCP控制器:通过Mesh配置协议对接外部配置源
- 内存/文件控制器:主要用于测试
-
服务控制器(Service Controller):
- Kubernetes注册中心:对接K8s Service/Endpoint
- 内存注册中心:测试用途
Discovery的工作流程可以概括为:
- 从各种配置源获取配置信息
- 转换为统一的xDS格式
- 通过gRPC下发到数据面Envoy
Higress Core组件
Higress Core是Higress的核心增强部分,包含两大功能模块:
Ingress Config
包含六个关键控制器:
- Ingress控制器:将K8s Ingress转换为Istio资源
- Gateway控制器:处理Gateway API资源
- McpBridge控制器:对接外部注册中心(Nacos/Eureka等)
- Http2Rpc控制器:实现HTTP到RPC的协议转换
- WasmPlugin控制器:管理Wasm插件配置
- ConfigmapMgr:处理全局配置
Cert Server
提供证书管理能力:
- 自动证书签发
- Secret资源管理
- 证书生命周期管理
Higress Gateway实现原理
作为数据平面实现,Higress Gateway基于Envoy构建,包含两个核心组件:
Pilot Agent
负责Envoy的生命周期管理:
- 启动和监控Envoy进程
- 代理xDS请求到Discovery
- 健康检查与自动恢复
Envoy核心架构
Envoy作为高性能代理,其核心组件包括:
-
网络组件:
- 监听器(Listener):接收下游连接
- 过滤器链(Filter Chain):处理网络流量
-
路由系统:
- 路由器(Router):决定请求路由
- 集群(Cluster):上游服务分组
- 端点(Endpoint):具体服务实例
-
动态配置:
- LDS:监听器发现服务
- RDS:路由发现服务
- CDS:集群发现服务
- EDS:端点发现服务
- SDS:密钥发现服务
Envoy处理请求的典型流程:
- 下游客户端发起请求
- 监听器接收并交给过滤器链处理
- 路由器根据规则匹配目标集群
- 负载均衡选择具体端点
- 转发请求到上游服务
- 返回响应给下游客户端
关键技术点解析
配置管理机制
Higress采用分层配置管理:
- 原始配置:来自K8s CRD或外部系统
- 中间表示:转换为Istio资源模型
- 最终配置:生成xDS协议数据
服务发现集成
支持多种服务发现方式:
- 原生Kubernetes服务发现
- 通过McpBridge对接外部注册中心
- 基于DNS的服务发现
扩展能力实现
- Wasm插件机制:支持动态扩展Envoy功能
- 协议转换:实现HTTP到RPC的无缝转换
- 自定义资源:增强原生K8s资源模型
总结
Higress网关通过精心设计的架构,实现了控制平面与数据平面的高效协同。其核心价值体现在:
- 高性能:基于Envoy的数据平面提供优异的性能表现
- 灵活性:支持多种配置来源和服务发现机制
- 扩展性:通过插件机制实现功能扩展
- 云原生:深度集成Kubernetes生态
理解Higress的架构设计,有助于开发者更好地使用和扩展这一网关解决方案,构建高效可靠的云原生应用基础设施。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0202
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0130
MiMo-V2.5-Pro-FP4-DFlashMiMo-V2.5-Pro-FP4-DFlash 是驱动 MiMo-V2.5-Pro-UltraSpeed 的底层模型: FP4 量化骨干网络:对 MoE 专家采用 MXFP4 量化,同时保持模型其他部分的更高精度,在几乎无损质量的前提下,显著减小模型体积并降低内存带宽压力。 BF16 DFlash 草稿生成器:用于块扩散推测解码,每次前向传播可生成一整个块的 tokens,并让骨干网络一步完成验证。 两者协同作用,既降低了每参数的位宽,又减少了骨干网络前向传播的次数,而这两者正是万亿参数模型解码过程中的两大主要成本来源。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
AstrBot✨ 易上手的多平台 LLM 聊天机器人及开发框架 ✨ 平台支持 QQ、QQ频道、Telegram、微信、企微、飞书 | OpenAI、DeepSeek、Gemini、硅基流动、月之暗面、Ollama、OneAPI、Dify 等。附带 WebUI。Python08
handy-ollama动手学Ollama,CPU玩转大模型部署,在线阅读地址:https://datawhalechina.github.io/handy-ollama/Jupyter Notebook07