前言
在云原生与AI大模型快速落地的当下,传统网关难以适配智能流量调度、AI模型服务治理、高弹性云原生业务场景。Higress 作为阿里开源的轻量化云原生API网关,深度适配Kubernetes生态,基于Envoy与Istio架构重构优化,兼具高性能、高扩展性与AI场景适配能力,可完美支撑云原生微服务、AI模型服务的流量管理、安全管控、可观测等核心需求。本文将详细介绍Higress核心能力,并提供低资源测试环境的Helm标准化部署方案。
一、Higress 概述
1.什么是 Higress
Higress 是阿里巴巴开源的云原生一体化API网关,基于Envoy数据面、Istio控制面深度构建,区别于传统网关,针对性优化了AI服务调度、云原生微服务治理场景,具备轻量化、高性能、易扩展、全场景适配的特点,是兼顾微服务网关、Ingress网关、AI网关的一站式流量治理组件。
2.核心能力
Higress 集成了流量调度、安全防护、AI服务治理、发布灰度、可观测等全维度能力,覆盖云原生与AI业务全生命周期流量管理需求,核心能力汇总如下:
1 2 3 4 5 6 7 8 9
| 核心能力: ├── AI 网关能力(兼容OpenAI标准API,适配大模型服务调度) ├── 多模型智能路由(模型负载均衡、故障自动转移、流量分发) ├── Token级精细化限流(支持按分钟Token用量精准限流,适配AI场景) ├── 全方位认证鉴权(支持API Key、JWT、OAuth主流鉴权方式) ├── AI流量统计监控(Token消耗量、请求延迟、成功率等指标监控) ├── Wasm动态插件扩展(支持自定义业务逻辑,无需重构网关) ├── 精细化灰度发布(金丝雀发布、A/B测试、流量灰度分流) └── 多协议智能转换(支持HTTP、gRPC、WebSocket协议互通转换)
|
二、安装Higress
在标准 K8s 集群中使用
Helm安装Higress
Higress 官方提供了 Helm Chart,推荐使用 Helm 进行安装与管理。
1、自定义配置文件
- 我的服务器资源有限,通过自定义配置文件
higress-values.yaml降低各组件的资源配额,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| global: ingressClass: higress
higress-core: gateway: replicas: 1 service: type: NodePort resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 512Mi controller: replicas: 1 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 512Mi pilot: resources: requests: cpu: 100m memory: 256Mi limits: cpu: 300m memory: 512Mi
higress-console: replicaCount: 1 service: type: NodePort resources: requests: cpu: 50m memory: 128Mi limits: cpu: 200m memory: 256Mi
|
2、添加 Helm 仓库并安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| helm repo add higress.io https://higress.io/helm-charts helm repo update
helm install higress higress.io/higress \ -n higress-system --create-namespace \ -f higress-values.yaml
helm install higress -n higress-system higress.io/higress \ --create-namespace \ --set global.ingressClass=higress \ --set higress-console.service.type=NodePort \ --set higress-core.gateway.replicas=1 \ --set higress-core.gateway.resources.requests.cpu=50m \ --set higress-core.gateway.resources.requests.memory=128Mi \ --set higress-core.gateway.resources.limits.cpu=200m \ --set higress-core.gateway.resources.limits.memory=256Mi \ --set higress-core.controller.replicas=1 \ --set higress-core.controller.resources.requests.cpu=100m \ --set higress-core.controller.resources.requests.memory=256Mi \ --set higress-core.controller.resources.limits.cpu=500m \ --set higress-core.controller.resources.limits.memory=512Mi \ --set higress-console.resources.requests.cpu=50m \ --set higress-console.resources.requests.memory=128Mi \ --set higress-console.resources.limits.cpu=200m \ --set higress-console.resources.limits.memory=256Mi \ --set higress-core.discovery.resources.requests.cpu=50m \ --set higress-core.discovery.resources.requests.memory=128Mi \ --set higress-core.discovery.resources.limits.cpu=200m \ --set higress-core.discovery.resources.limits.memory=256Mi
helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes
|
3、升级与卸载
1 2 3 4 5 6 7 8 9 10 11 12
| helm upgrade higress -n higress-system higress.io/higress \ --set global.gateway.replicas=1
helm upgrade higress higress.io/higress \ -n higress-system \ -f higress-values.yaml
helm uninstall higress -n higress-system
|
三、Higress简单使用
安装完成后,我们可以通过一个简单的 Demo 来验证 Higress 的路由功能。下面将在集群中部署一个后端服务,并创建 Ingress 规则,将外部请求转发至该服务。
1、部署后端测试服务
包含 Deployment + Service,使用 Higress 官方回显镜像,访问接口会返回请求完整信息,方便调试路由规则。
创建 demo1.yaml 文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| apiVersion: v1 kind: Service metadata: name: backend labels: app: backend spec: ports: - name: http port: 3000 targetPort: 3000 selector: app: backend --- apiVersion: apps/v1 kind: Deployment metadata: name: backend spec: replicas: 1 selector: matchLabels: app: backend template: metadata: labels: app: backend spec: containers: - name: backend image: higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/echoserver:v20221109-7ee2f3e imagePullPolicy: IfNotPresent ports: - containerPort: 3000
|
执行部署命令:
1 2 3 4
| kubectl apply -f demo1.yaml
kubectl get pods kubectl get svc backend
|
2、创建 Higress 路由规则
通过标准 Kubernetes Ingress 资源声明路由,指定 ingressClassName: higress 交由 Higress 接管流量,匹配路径 /hello-world 转发至 backend 服务 3000 端口。
创建 demo1-ingress.yaml 文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: hello-world spec: ingressClassName: higress rules: - http: paths: - pathType: Prefix path: "/hello-world" backend: service: name: backend port: number: 3000
|
执行以下命令创建 Ingress:
1 2 3
| kubectl apply -f demo1-ingress.yaml
kubectl get ingress hello-world
|
3、访问测试
由于我们在安装时设置了网关服务类型为 NodePort,需要获取 Higress 网关的 NodePort 端口:
1 2 3
| kubectl get svc -n higress-system higress-gateway
|

网关(higress-gateway)暴露的端口,80:31320/TCP,443:30145/TCP 所以可以访问:
http://服务器IP:31320/hello-world
https://服务器IP:30145/hello-world

4、配置Key认证
Higress 支持为路由配置 API Key 认证,增强访问安全性。
可以添加一个路由指向 backend 服务,然后给这个路由配置key认证

创建hw.com 测试域名(随便取)

创建一个路由

目标服务,选择backend 服务

配置策略

选择key认证,进行配置

在电脑上配置域名hosts文件

访问测试,
- 添加apikey参数,访问成功
- 不加apikey参数,访问失败


至此,Higress 的基础安装和路由认证功能已成功验证。后续可根据业务需求配置更复杂的灰度发布、限流和 AI 路由策略。