首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >再见 Ingress!Kubernetes 又一新流量管理利器来了!

再见 Ingress!Kubernetes 又一新流量管理利器来了!

作者头像
民工哥
发布2026-03-24 17:20:51
发布2026-03-24 17:20:51
4220
举报

特色专栏

MySQL/PostgreSQL/MongoDB

ElasticSearch/Hadoop/Redis

Kubernetes/Docker/DevOps

Kafka/RabbitMQ/Zookeeper

监控平台/应用与服务/集群管理

Nginx/Git/Tools/OpenStack

大家好,我是民工哥!

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 类,提供可扩展的管理、监控和自动化功能。

HAProxy Unified Gateway 部署与使用

安装 HAProxy Unified Gateway

推荐方式:使用 Helm 部署,简化配置管理:

代码语言:javascript
复制
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 部署。

配置 Gateway API 资源

部署 GatewayClass:定义网关控制器类型,关联到 HAProxy:

代码语言:javascript
复制
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: haproxy-unified
spec:
  controllerName: haproxy.com/ingress-controller

部署 Gateway:指定监听端口和协议(如 HTTP/80):

代码语言:javascript
复制
apiVersion: gateway.networking.k8s.io/v1
kind:Gateway
metadata:
name:my-gateway
spec:
gatewayClassName:haproxy-unified
listeners:
-protocol:HTTP
    port:80
    name:http

部署 HTTPRoute:定义路由规则,将流量导向后端服务:

代码语言:javascript
复制
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
关键配置与优化
负载均衡算法
  • 轮询(rr):默认算法,适用于短连接场景。
  • 最少连接数(lc):优先选择连接数最少的后端,适合长连接。
  • 源地址哈希(source):基于客户端 IP 哈希分配,确保同一客户端始终访问同一后端。
健康检查

backend 配置段中添加 check 参数,设置检测间隔和失败阈值:

代码语言:javascript
复制
backend my-service
modehttp
balanceroundrobin
servers110.0.0.1:80checkinter5srise2fall3

参数说明

代码语言:javascript
复制
inter 5s  #每 5 秒检测一次。
rise 2  #连续成功 2 次后标记为可用。
fall 3  #连续失败 3 次后标记为不可用。
TLS 终止

frontend 配置段中绑定 SSL 证书:

代码语言:javascript
复制
frontend https-in
  bind :443 ssl crt /etc/haproxy/certs/cert.pem
  default_backend my-service
日志与监控

日志配置在 global 段中指定日志服务器和格式:

代码语言:javascript
复制
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+)

创建 GatewayClass
代码语言:javascript
复制
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: haproxy-unified
spec:
  controllerName: haproxy.com/ingress-controller
创建 Gateway
代码语言:javascript
复制
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 资源

手动转换:将 Ingress 的 hostpath 规则映射到 HTTPRoute

代码语言:javascript
复制
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 工具自动转换配置:

代码语言:javascript
复制
ingress2gateway convert -f ingress.yaml -o httproute.yaml
测试与验证

功能测试:检查路由是否按预期工作。

代码语言:javascript
复制
curl -H "Host: example.com" http://<gateway-ip>/app

验证流量分裂(Canary 部署)和镜像功能。

性能测试:使用 wrkLocust 模拟高并发流量,确认 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但怕风险:HAProxy Unified Gateway提供“渐进式迁移”路径,先试用新功能,再逐步替换旧配置。
  • 追求极致性能:对比Nginx Ingress,HAProxy在长连接、高并发场景下吞吐量提升30%+。
  • 规划多租户架构:通过Gateway API的ReferenceGrant、ExtensionPolicy实现跨团队流量隔离与权限控制。

结语

对于存量项目,它可直接复用现有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条命令即可部署,轻松实现从传统架构到云原生流量的平滑升级!

立即行动,开启你的云原生流量管理新纪元!

都看到这里了,觉得不错的话,随手点个赞👍 、推荐

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 核心功能与特性
  • 技术优势亮点
  • 应用场景
  • HAProxy Unified Gateway 部署与使用
    • 安装 HAProxy Unified Gateway
    • 配置 Gateway API 资源
    • 关键配置与优化
  • 迁移
    • 创建 GatewayClass
    • 创建 Gateway
    • 迁移 Ingress 资源
    • 测试与验证
  • 对比分析
    • 适合这样的你
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档