云原生网关Higress介绍与部署指南

文章目录

Higress从0到1:云原生网关介绍与部署指南

一、什么是 Higress

Higress 是阿里云主导的开源云原生网关 ,基于 Istio 与 Envoy 构建,融合了 API 网关、服务网格(Service Mesh)、安全网关的核心能力,核心价值在于统一流量入口管理,为微服务、Serverless、AI 应用提供高性能、高可用的流量治理解决方案。

核心能力矩阵
能力模块 核心价值 应用场景示例
全量流量治理 支持 HTTP/HTTPS/GRPC/WebSocket,含路由、负载均衡、限流熔断 微服务 API 网关、前端静态资源代理
服务网格集成 无缝对接 Istio,兼具数据面与控制面能力 混合云服务治理、跨集群服务通信
企业级安全防护 WAF 防护、JWT 鉴权、HTTPS 加密、IP 黑白名单 对外 API 安全、内部服务访问控制
低代码可视化管控 控制台图形化配置,支持 YAML/UI 双模式 运维高效配置、权限精细化管理
多生态适配 兼容 Spring Cloud、Dubbo、K8s 原生服务 存量系统迁移、多云架构部署
与传统网关的核心差异
特性维度 Higress Nginx/APISIX
架构基础 基于 Envoy,云原生原生设计 基于 Nginx 内核,需适配云原生
服务网格支持 内置 Istio 控制面能力,无需额外部署 需通过插件间接集成
动态配置 秒级热更新,无重启损耗 部分配置需 reload 生效
可扩展性 基于 WASM 插件生态,扩展灵活 基于 Lua/Go 插件,生态相对局限

二、环境准备

1. 前置工具清单
部署场景 必需工具 版本要求
单机 Docker 部署 Docker 20.10.0+
2. 资源规划建议
  • 单机部署:CPU ≥ 2 核,内存 ≥ 4GB,磁盘 ≥ 20GB

三、部署操作:

单机 Docker 快速部署
步骤 1:拉取官方镜像
复制代码
\# 拉取最新稳定版镜像(当前为1.3.0)

docker pull higress.io/higress-gateway:1.3.0

docker pull higress.io/higress-console:1.3.0
步骤 2:创建配置文件

新建config.yaml(基础路由配置示例):

yaml 复制代码
apiVersion: networking.higress.io/v1

kind: Gateway

metadata:

 name: default-gateway

 namespace: higress-system

spec:

 selector:

   higress.io/gateway: default

 listeners:

 - port: 80

   protocol: HTTP

   name: http

   hostname: "\*"

---

apiVersion: networking.higress.io/v1

kind: VirtualService

metadata:

 name: demo-route

 namespace: higress-system

spec:

 hosts:

 - "\*"

 gateways:

 - default-gateway

 http:

 - match:

   - uri:

       prefix: /demo

   route:

   - destination:

       host: httpbin.org

       port:

         number: 80
步骤 3:启动 Higress 服务
复制代码
# 创建自定义网络

docker network create higress-network

# 启动控制面(含控制台)

docker run -d --name higress-console \\

 --network higress-network \\

 -p 8080:8080 \\

 -v \$(pwd)/config.yaml:/etc/higress/config.yaml \\

 higress.io/higress-console:1.3.0

# 启动数据面(网关代理)

docker run -d --name higress-gateway \\

 --network higress-network \\

 -p 80:80 -p 443:443 \\

 -e "HIGRESS\_CONSOLE\_ADDR=http://higress-console:8080" \\

 higress.io/higress-gateway:1.3.0
步骤 4:验证部署
复制代码
# 测试基础路由转发

curl http://localhost/demo/get

# 预期返回httpbin.org的/get接口响应

# 访问控制台(默认账号密码:admin/admin)

open http://localhost:8080

四、核心实战:基础路由配置

案例 1:配置 HTTP 路由转发到后端服务
  1. 通过控制台配置
  • 进入「流量管理」→「虚拟服务」→「创建」

  • 填写主机名api.example.com,添加路由规则:路径/user/*转发到服务user-service:8080

  • 点击「发布」,秒级生效

2 通过 YAML 配置

复制代码
apiVersion: networking.higress.io/v1

kind: VirtualService

metadata:

 name: user-service-route

 namespace: default

spec:

 hosts:

 - "api.example.com"

 gateways:

 - higress-system/default-gateway

 http:

 - match:

   - uri:

       prefix: /user/

   route:

   - destination:

       host: user-service.default.svc.cluster.local

       port:

         number: 8080

应用配置:kubectl apply -f user-route.yaml

案例 2:配置限流规则(保护后端服务)
复制代码
apiVersion: networking.higress.io/v1

kind: RateLimit

metadata:

 name: user-api-limit

 namespace: default

spec:

 targetRef:

   kind: VirtualService

   name: user-service-route

 rateLimits:

 - actions:

   - requestHeader:

       name: "X-User-ID" # 按用户ID限流

   limit:

     requests: 100 # 每分钟100次请求

     duration: 60

五、常见问题排查

  1. 路由配置不生效
  • 检查网关关联:VirtualService 的gateways字段需包含目标 Gateway

  • 验证域名解析:确保请求 Host 头匹配 VirtualService 的hosts字段

  1. 镜像拉取失败
  • 配置阿里云镜像加速:sudo mkdir -p /etc/docker && echo '{"registry-mirrors":["``https://xxxx.mirror.aliyuncs.com``"]}' | sudo tee /etc/docker/daemon.json && sudo systemctl restart docker
  1. 限流规则不生效
  • 确认 RateLimit 的 targetRef 指向正确的 VirtualService

  • 检查请求头是否包含限流维度字段(如 X-User-ID)

六、参考资源

相关推荐
星辰烈龙18 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
浩子智控18 小时前
分区操作系统、容器化、虚拟机的概念
服务器·系统安全
小宇的天下18 小时前
Calibre 3Dstack --每日一个命令day7【Centers】(3-7)
java·服务器·数据库
济61718 小时前
linux(第九期)--交叉编译器-- Ubuntu20.04
linux·运维·服务器
zxdzxdzzxd18 小时前
Tailscale Linux 登录指南
linux·运维·服务器
Knight_AL18 小时前
MinIO 入门实战:Docker 安装 + Spring Boot 文件上传(公有 / 私有)
spring boot·docker·容器
2501_9458374318 小时前
云服务器高可用运维的核心逻辑与实操
服务器
咕噜签名-铁蛋18 小时前
云服务器GPU:释放AI时代的算力引擎
运维·服务器·人工智能
阿巴~阿巴~18 小时前
“可达”方能“可靠”:深入解析网络层在TCP通信中的基石作用
运维·服务器·网络·网络协议·tcp/ip·ip·tcp
小白电脑技术19 小时前
节点小宝「中心节点」:一个设备,解锁全家远程访问
运维·服务器