Higress网关架构深度解析:核心组件与工作原理

Higress网关架构深度解析:核心组件与工作原理

higress Next-generation Cloud Native Gateway | 下一代云原生网关 higress 项目地址: https://gitcode.com/gh_mirrors/hi/higress

引言

在现代云原生架构中,API网关扮演着至关重要的角色,它不仅是流量的入口,更是微服务架构中的关键基础设施。本文将深入解析Higress网关的架构设计,帮助读者全面理解其核心组件和工作原理。

Higress整体架构概述

Higress是基于Envoy和Istio构建的轻量级网关服务,通过二次开发和功能增强,提供了更符合云原生场景的网关解决方案。其核心架构由三个主要组件构成:

  1. Higress Console:管理控制台
  2. Higress Controller:控制平面核心
  3. Higress Gateway:数据平面实现

这三个组件协同工作,共同构成了Higress网关的完整解决方案。

Higress Console详解

Higress Console作为网关的管理界面,提供了直观的配置管理能力。其核心功能包括:

  • 路由配置管理
  • 插件配置管理
  • 域名与证书管理
  • 服务发现配置

Higress Admin SDK

Higress Admin SDK是从控制台中剥离出来的配置管理组件,主要特点包括:

  1. 多语言支持:目前提供Java版本,要求JDK 17+
  2. 功能全面:支持服务来源、路由、域名、证书等全生命周期管理
  3. 易于集成:可作为独立组件与外部系统对接

Higress Controller深度解析

作为Higress的控制平面核心,Controller承担着配置管理和服务发现的重任。它由两个关键子组件构成:

Discovery组件

Discovery组件源自Istio Pilot-Discovery,是服务网格的核心控制平面。其核心功能架构如下:

  1. 配置控制器(Config Controller)

    • Kubernetes控制器:直接对接K8s API
    • Gateway API控制器:支持标准Gateway API
    • MCP控制器:通过Mesh配置协议对接外部配置源
    • 内存/文件控制器:主要用于测试
  2. 服务控制器(Service Controller)

    • Kubernetes注册中心:对接K8s Service/Endpoint
    • 内存注册中心:测试用途

Discovery的工作流程可以概括为:

  1. 从各种配置源获取配置信息
  2. 转换为统一的xDS格式
  3. 通过gRPC下发到数据面Envoy

Higress Core组件

Higress Core是Higress的核心增强部分,包含两大功能模块:

Ingress Config

包含六个关键控制器:

  1. Ingress控制器:将K8s Ingress转换为Istio资源
  2. Gateway控制器:处理Gateway API资源
  3. McpBridge控制器:对接外部注册中心(Nacos/Eureka等)
  4. Http2Rpc控制器:实现HTTP到RPC的协议转换
  5. WasmPlugin控制器:管理Wasm插件配置
  6. ConfigmapMgr:处理全局配置
Cert Server

提供证书管理能力:

  • 自动证书签发
  • Secret资源管理
  • 证书生命周期管理

Higress Gateway实现原理

作为数据平面实现,Higress Gateway基于Envoy构建,包含两个核心组件:

Pilot Agent

负责Envoy的生命周期管理:

  • 启动和监控Envoy进程
  • 代理xDS请求到Discovery
  • 健康检查与自动恢复

Envoy核心架构

Envoy作为高性能代理,其核心组件包括:

  1. 网络组件

    • 监听器(Listener):接收下游连接
    • 过滤器链(Filter Chain):处理网络流量
  2. 路由系统

    • 路由器(Router):决定请求路由
    • 集群(Cluster):上游服务分组
    • 端点(Endpoint):具体服务实例
  3. 动态配置

    • LDS:监听器发现服务
    • RDS:路由发现服务
    • CDS:集群发现服务
    • EDS:端点发现服务
    • SDS:密钥发现服务

Envoy处理请求的典型流程:

  1. 下游客户端发起请求
  2. 监听器接收并交给过滤器链处理
  3. 路由器根据规则匹配目标集群
  4. 负载均衡选择具体端点
  5. 转发请求到上游服务
  6. 返回响应给下游客户端

关键技术点解析

配置管理机制

Higress采用分层配置管理:

  1. 原始配置:来自K8s CRD或外部系统
  2. 中间表示:转换为Istio资源模型
  3. 最终配置:生成xDS协议数据

服务发现集成

支持多种服务发现方式:

  1. 原生Kubernetes服务发现
  2. 通过McpBridge对接外部注册中心
  3. 基于DNS的服务发现

扩展能力实现

  1. Wasm插件机制:支持动态扩展Envoy功能
  2. 协议转换:实现HTTP到RPC的无缝转换
  3. 自定义资源:增强原生K8s资源模型

总结

Higress网关通过精心设计的架构,实现了控制平面与数据平面的高效协同。其核心价值体现在:

  1. 高性能:基于Envoy的数据平面提供优异的性能表现
  2. 灵活性:支持多种配置来源和服务发现机制
  3. 扩展性:通过插件机制实现功能扩展
  4. 云原生:深度集成Kubernetes生态

理解Higress的架构设计,有助于开发者更好地使用和扩展这一网关解决方案,构建高效可靠的云原生应用基础设施。

higress Next-generation Cloud Native Gateway | 下一代云原生网关 higress 项目地址: https://gitcode.com/gh_mirrors/hi/higress

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惠焰凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值