2026年3月底, ingress-nginx这个老登就会举办退役仪式,k8s社区强烈推荐运维迁移到其他云原生网关。
2026年3月初, 虾系玩物claw已经被AI市场宠的不像样。
最近我们在探索用一套AI网关同时提供 云原生API和 AI token服务,于是我们开始从ingres-nginx迁移到云原生AI网关higress。
1.higress 是什么?
中登上场,依旧能打!!!
higress由阿里开源的云原生网关,近几年随大流推出了AI网关的能力。
云原生AI网关Higress 提供两种模式, 这也是传统的Ingress-nginx肉眼可见的区别。
- K8s ingress模式: 作为controller运行,兼容k8s资源和ingress注解,适用与保持原生k8s工作流的场景。
- api控制台模式:通过过API控制台界面或者API配置,提供完整的api生命周期管理、精细化策略,适用与集中化治理和精细化管理的场景。
注意: 控制台创建的API优先级会高于Ingress方式同步的路由, 控制台路由列表也只会包含通过控制台创建的路由配置。
通过helm安装:
helm repo add higress.io higress.cn/helm-charts helm install higress -n higress-system higress.io/higress --create-namespace --render-subchart-notes
sql
kubectl get svc -n higress-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
higress-console ClusterIP 10.96.106.73 <none> 8080/TCP 21h
higress-controller ClusterIP 10.96.129.8 <none> 8888/TCP,8889/TCP,15051/TCP,15010/TCP,15012/TCP,443/TCP,15014/TCP 21h
higress-gateway LoadBalancer 10.96.75.36 10.16.16.5 80:31255/TCP,443:30881/TCP 21h
裸金属k8s集群已经安装了metalLb负载均衡器, 故svc type=loadbancler有external-ip, 可在主机网络访问。
1.1 higress控制台模式
higress-console svc type=clusterIP是控制台界面,默认不对集群外访问, 但是咱们需要去界面配置, 有个技巧值得收藏, 收藏== 学会!
1> 从k8s节点上打隧道到集群内部服务
kubectl port-forward -n higress-system svc/higress-console 8080:8080
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
启动新终端,便可以在k8s集群节点上curl命令访问集群内8080端口服务。
2> 从裸金属linux(无图形界面)隧道到有界面的本机
在windows主机cmd上执行 ssh -L 8080:127.0.0.1:8080 vadmin@10.16.15.1, 便可以在本机浏览器访问集群节点上隧道的8080端口服务。

2. 从ingress-nginx 迁移到higress
higress支持绝大多数ingress-nginx注解,覆盖90%的用户场景。
① 一般情况下,修改原始的ingress.yaml文件,ingressClassName从nginx改成higress
② apply的时候,会被ingress nginx的准入配置拦截, 需要先删除准入机制,不影响ingress-nginx-controller行为。

arduino
kubectl get ValidatingWebhookConfiguration # default 命名空间下
kubectl delete ValidatingWebhookConfiguration ingress-nginx-admission
③ 验证higress 迁移配置
- 验证higress gateway与刚apply的服务的连通性:
kubectl exec -it -n higress-system higress-gateway-549dcf7877-p8d2s -- curl -v http://web-svc.zsypt-user-cloud.svc.cluster.local:8080
- 验证higress gateway 与刚加入的服务的路由正确性:
kubectl exec -it -n higress-system higress-gateway-549dcf7877-p8d2s -- curl -v http://127.0.0.1:80 -H "host: studio.pgclouds.com"
此次因为 higress 已经通过load balancer对外暴露,可以使用 curl external-ip -H "host:studio.pgclouds.com" 直接测试
上面没问题,开始将流量从ingress-nginx external-ip切换到higress gatewayexternal-ip了。
这里留一个问题: ingress-nginx-controller,higress-gateway svc占据了metalLb分配的2个ip,如何在不通知运维切换的情况下,固定一个ip。
3. higress 才是AI时代的心头好
3.1 vllm production-stack部署LLM服务
vllm高性能推理框架,vllm production-stack是面向生产的高性能推理实践。
- vLLM实例快速伸缩
- 请求路由和 KV Cache卸载带来的性能优势
- 可观测性
higress 能做什么 :
Higress 能够用统一的协议对接国内外所有 LLM 模型厂商,同时具备丰富的 AI 可观测、多模型负载均衡/fallback、AI token 流控、AI 缓存等能力
集群已经部署了qwen3.5-35b模型。

3.2 配置higress代理到LLM推理服务
① 登录Higress Console 控制台: 127.0.0.1:8080 如何访问,参考本文1.1节
② 配置LLLM AI Provider,这个就类比nginx upstream svc
vLLM原生兼容OpenAI 协议, 使用自建k8s集群内的推理服务地址:vllm-qwen-router-service.vllm-product-stack.svc.cluster.local

③ 配置AI路由, 类似常规的路由
下面的配置意味着:
uri匹配/v1/chat ,且modelName 前缀匹配Qwen,会路由进入推理服务。 
④ 诊断脚本: 可以用higress gateway external-ip 直接测试推理服务。
/v1/chat和modelkey可认为是路由条件。

curl -v http://10.16.16.5/v1/chat/completions -X POST -H 'Content-Type: application/json' -d '{"model": "Qwen/Qwen3.5-35B-A3B-GPTQ-Int4", "messages": [{"role": "user", "content": "Hello!"}]}'
以上是一个兼容openAI的推理服务地址, 不管上层是 chatweb还是agent,总归要消耗token,这次咱token管够。
4. 好记性不如烂笔头,读后你能得到
1>. ingress-nginx这个老登行将就木,再不迁移就废了;
2>. 两次隧道的技巧,你得知道。
3>. Higress 这个中登,在AI时代依旧能打!
4>. 如何无感知从Ingress-nginx 迁移到Higress? 这是一个疑问句