
— 特色专栏 —
大家好,我是民工哥!
Kubernetes 又一新流量管理利器来了!

随着 Kubernetes 的广泛应用,其网络流量管理需求日益复杂。传统的 Ingress 控制器在功能扩展性和灵活性上逐渐显现不足。

而 Kubernetes Gateway API 作为新兴标准,旨在解决这些架构和操作上的缺陷。
近日,Kubernetes-Native API Gateway 又添一新成员:HAProxy Kubernetes Unified Gateway (统一网关)。
日前,HAProxy 已正式发布 Kubernetes 统一网关(HAProxy Unified Gateway)的公开测试版(Beta版),该版本作为免费开源产品,旨在为 Kubernetes 提供原生应用路由支持,并同时兼容 Gateway API 和 Ingress 两种标准。

HAProxy Unified Gateway 的发布,旨在帮助组织立即利用 Gateway API 的优势,同时为现有的 Ingress 部署提供统一支持,简化 Kubernetes 环境下的流量管理。
统一支持 Gateway API 和 Ingress:HAProxy Unified Gateway 同时支持 Kubernetes Gateway API 和 Ingress,使得用户可以在不改变现有部署的情况下,逐步迁移到 Gateway API,享受其带来的功能扩展性和灵活性。
高性能与可靠性:作为全球知名的开源负载均衡器和反向代理,HAProxy 以其高性能和可靠性著称。HAProxy Unified Gateway 继承了这些优点,为 Kubernetes 环境提供了稳定、高效的流量管理解决方案。
灵活的协议支持:支持 TCP 和 HTTP 等多种协议,满足不同应用的流量管理需求。
易于集成与部署:提供 Docker 镜像,方便用户快速部署和测试。同时,其开源特性也使得用户可以根据自身需求进行定制和扩展。
原生支持 Kubernetes:作为 Kubernetes-native 的网关解决方案,HAProxy Unified Gateway 能够无缝集成到 Kubernetes 环境中,利用 Kubernetes 的原生功能进行配置和管理。
简化流量管理:通过统一的接口和配置方式,简化了 Kubernetes 环境下的流量管理流程,降低了运维复杂度。
增强安全性:集成了机器人保护、DDoS 缓解、速率限制和 Web 应用防火墙(WAF)等功能,为 Kubernetes 应用提供了全面的安全防护。
低风险迁移路径:支持从 Ingress 到 Gateway API 的渐进式迁移,避免大规模切换带来的风险。

高流量网站:HAProxy Unified Gateway 适合处理高负载站点的七层数据请求,为世界上访问量最大的网站提供强大的支持。
混合云环境:HAProxy One 平台(包含 HAProxy Unified Gateway)通过统一的方式管理、保护和观察应用流量,简化混合云迁移。
企业级部署:未来将推出的企业版实现将直接集成到 HAProxy Fusion(HAProxy One 的集中控制平面),支持多 Kubernetes 集群和多 Gateway 类,提供可扩展的管理、监控和自动化功能。
推荐方式:使用 Helm 部署,简化配置管理:
helm repo add haproxy-ingress https://haproxy-ingress.github.io/charts
helm install haproxy-unified-gateway haproxy-ingress/haproxy-ingress --set controller.kind=Deployment
手动部署:从 GitHub 仓库(https://github.com/haproxytech/kubernetes-ingress) 获取 YAML 文件,通过 kubectl apply 部署。
部署 GatewayClass:定义网关控制器类型,关联到 HAProxy:
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: haproxy-unified
spec:
controllerName: haproxy.com/ingress-controller
部署 Gateway:指定监听端口和协议(如 HTTP/80):
apiVersion: gateway.networking.k8s.io/v1
kind:Gateway
metadata:
name:my-gateway
spec:
gatewayClassName:haproxy-unified
listeners:
-protocol:HTTP
port:80
name:http
部署 HTTPRoute:定义路由规则,将流量导向后端服务:
apiVersion: gateway.networking.k8s.io/v1
kind:HTTPRoute
metadata:
name:my-route
spec:
parentRefs:
-name:my-gateway
hostnames:["example.com"]
rules:
-matches:
-path:
type:PathPrefix
value:/app
backendRefs:
-name:my-service
port:80
在 backend 配置段中添加 check 参数,设置检测间隔和失败阈值:
backend my-service
modehttp
balanceroundrobin
servers110.0.0.1:80checkinter5srise2fall3
参数说明
inter 5s #每 5 秒检测一次。
rise 2 #连续成功 2 次后标记为可用。
fall 3 #连续失败 3 次后标记为不可用。
在 frontend 配置段中绑定 SSL 证书:
frontend https-in
bind :443 ssl crt /etc/haproxy/certs/cert.pem
default_backend my-service
日志配置在 global 段中指定日志服务器和格式:
global
log 127.0.0.1 local2
log-format "%ci:%cp [%t] \"%ft\" %b/%s %Tw/%Tc/%Tt %ST %B %cc %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs"
监控集成:通过 Prometheus 抓取 HAProxy 指标,使用 Grafana 可视化。
HAProxy Kubernetes 统一网关支持 Ingress 和 Kubernetes Gateway API 之间做到无缝迁移。
首先需要确保集群支持 Gateway API(需 Kubernetes 1.16+)
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: haproxy-unified
spec:
controllerName: haproxy.com/ingress-controller
apiVersion: gateway.networking.k8s.io/v1
kind:Gateway
metadata:
name:my-gateway
namespace:default
spec:
gatewayClassName:haproxy-unified
listeners:
-protocol:HTTP
port:80
name:http
allowedRoutes:
namespaces:
from:All
手动转换:将 Ingress 的 host 和 path 规则映射到 HTTPRoute:
apiVersion: gateway.networking.k8s.io/v1
kind:HTTPRoute
metadata:
name:my-route
spec:
parentRefs:
-name:my-gateway
hostnames:["example.com"]
rules:
-matches:
-path:
type:PathPrefix
value:/app
backendRefs:
-name:my-service
port:80
自动化工具:使用 ingress2gateway 工具自动转换配置:
ingress2gateway convert -f ingress.yaml -o httproute.yaml
功能测试:检查路由是否按预期工作。
curl -H "Host: example.com" http://<gateway-ip>/app
验证流量分裂(Canary 部署)和镜像功能。
性能测试:使用 wrk 或 Locust 模拟高并发流量,确认 HAProxy 的负载均衡能力。
对比维度 | HAProxy Unified Gateway | Ingress | Kubernetes Gateway API |
|---|---|---|---|
定位与标准 | Kubernetes原生统一网关,同时兼容Ingress和Gateway API标准 | Kubernetes传统入口API,依赖控制器实现 | Kubernetes官方新一代入口API,替代Ingress的标准化方案 |
功能特性 | 统一管理Ingress/Gateway API流量,支持TCP/HTTP/HTTPS,内置HAProxy高性能内核 | 基础HTTP路由,依赖厂商注解扩展功能 | 多协议支持(TCP/UDP/TLS/gRPC),细粒度路由(路径/头/查询参数),权重路由、蓝绿/金丝雀发布 |
扩展性 | 通过HAProxy配置深度定制,支持企业级扩展 | 依赖控制器实现,不同厂商实现差异大 | 标准化CRD设计,支持ExtensionPolicy扩展,厂商中立 |
多租户与角色分离 | 支持跨命名空间路由,通过GatewayClass/Gateway/Route分层管理 | 弱多租户支持,依赖命名空间隔离 | 强角色分离(基础设施提供商/集群运维/应用开发者),支持ReferenceGrant跨空间授权 |
性能与可靠性 | 基于HAProxy高性能内核,支持千万级并发,低延迟 | 性能依赖控制器实现,通常支持高并发 | 性能与控制器实现相关,标准设计优化高并发场景 |
部署复杂度 | 统一部署,支持Helm/手动部署,兼容现有Ingress | 需单独部署控制器,配置简单 | 需安装CRD及控制器,配置标准化但需适应新资源模型 |
适用场景 | 新老项目迁移过渡,统一管理Ingress/Gateway API流量 | 简单HTTP路由场景,快速部署 | 复杂流量管理(多协议/高级路由/多租户),现代化云原生架构 |
生态兼容性 | 兼容主流Kubernetes发行版,支持与HAProxy Fusion集成 | 广泛兼容,但实现差异大 | 官方标准,主流网关(Envoy/Istio/Traefik)及云厂商支持 |
版本与演进 | 2025年发布Beta版,2026年规划企业版 | Kubernetes原生API,持续更新 | v1.0稳定版已发布,持续迭代新特性(如UDPRoute) |
对于存量项目,它可直接复用现有Ingress规则,无需修改配置,避免业务中断。逐步启用Gateway API的权重路由、头匹配、流量镜像等高级功能,为微服务、金丝雀发布铺路。
HAProxy Unified Gateway 底层基于HAProxy高性能内核,单实例支持千万级并发连接,延迟低于1ms,内置智能健康检查、自动故障转移,确保服务零中断。轻松应对电商大促、API网关等高负载场景。
开箱即用,极简运维,通过CRD(Custom Resource Definitions)集中管理Ingress/Gateway流量,告别多工具切换。
完全遵循Kubernetes Gateway API标准,与Envoy、Istio等主流网关生态互通,避免技术锁死。
支持TCP/UDP/gRPC/TLS等多协议,满足IoT、音视频等复杂场景需求。

总的来说,HAProxy Unified Gateway 是一款兼容 Kubernetes 新旧入口标准的全能网关,既能无缝接管现有Ingress流量,又能解锁Gateway API的高级路由、多协议支持和多租户管理能力,1条命令即可部署,轻松实现从传统架构到云原生流量的平滑升级!
立即行动,开启你的云原生流量管理新纪元!
都看到这里了,觉得不错的话,随手点个赞👍 、推荐