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的架构设计,有助于开发者更好地使用和扩展这一网关解决方案,构建高效可靠的云原生应用基础设施。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考