云原生网关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)

六、参考资源

相关推荐
二宝哥3 小时前
云原生docker离线二进制安装
运维·docker·容器
肖老师xy3 小时前
uniapp 苹果端bug合集
java·服务器·uni-app
冠希陈、8 小时前
云锁客户端连不上服务器处理
linux·运维·服务器
似水এ᭄往昔8 小时前
【Linux】--入门、基础命令
linux·服务器
做运维的阿瑞8 小时前
Linux 企业级备份体系实战:cron/anacron/restic/rclone 对比与脚本总结
linux·运维·服务器·后端·学习·系统架构·centos
wanhengidc8 小时前
BGP高防服务器具体是指什么
运维·服务器·网络·安全·游戏·智能手机
2301_767902648 小时前
10. Linux 系统启动原理
linux·运维·服务器
☆璇8 小时前
【Linux】Ext系列文件系统(下)
linux·运维·服务器
crackpot·8 小时前
Linux 命令
linux·运维·服务器