前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >新闻|灵雀云开源ALB ,为云原生 Kubernetes 网关领域再添新星

新闻|灵雀云开源ALB ,为云原生 Kubernetes 网关领域再添新星

作者头像
灵雀云
发布2024-01-26 14:09:59
1340
发布2024-01-26 14:09:59
举报

ALB (Another Load Balancer)是一款由灵雀云倾力打造的云原生 Kubernetes 网关,近日,正式宣布将其在Github上开源。ALB 的诞生,旨在满足日益增长的云原生应用需求,为开发者提供更为强大和灵活的网关解决方案。

ALB 支持在一个集群内创建多个隔离的网关实例供不同租户使用,支持 Ingress、Gateway API、四层服务暴露和自定义流量规则 DSL,能够轻松应对各种复杂场景的流量调度需求。

ALB 是灵雀云在用户侧多年实践和经验积累的结晶。作为一家始终致力于云原生技术研究和应用的领先企业,灵雀云在网关领域积累了丰富的实践经验。ALB 的开源,不仅是对灵雀云多年研发成果的分享,更是对云原生社区的一份献礼。

目前,ALB项目代码已经在Github上开源,项目地址为:https://github.com/alauda/alb。欢迎更多的技术开发者和爱好者前去试用。

为什么又做一个网关?

面对社区中众多优秀的云原生开源网关项目,灵雀云为何决定再开发一个网关呢?这源于灵雀云对用户需求深入的理解和技术前瞻性的洞察。早在 2015 年,当 Kubernetes 社区主要对外暴露方式还是 NodePort,Ingress API 尚未成熟之际,灵雀云便基于 OpenResty 开始了自研网关的探索之路。历经多年的迭代和发展,ALB 已在数百个用户的生产环境中成功落地,并承载了大规模的业务流量。

为了满足更多社区用户对云原生网关的需求,并汲取社区用户的反馈与协助,灵雀云决定将 ALB 开源。我们坚信,开源的力量能够推动 ALB 不断进化,为云原生领域带来更多可能性。

ALB 有哪些独特的能力?

ALB 相比其他开源网关项目提供了以下独特的能力:

隔离和多租户

通过使用 ALB Operator,用户可以在一个集群内创建和管理多个 ALB 网关实例,每个租户和应用都可以使用一组独占的 ALB 网关实例,避免了流量的冲突和资源争抢。

Ingress 和 GatewayAPI 协议支持

ALB 同时支持了主流的 Ingress 标准,以及日趋流行的 Gateway API 标准,用户可以根据自己的需求进行选择,无需担心标准变化带来的影响。

强大的自定义规则

对于标准 Ingress 和 Gateway 不支持的复杂流量调度规则,ALB 提供了一组自定义的流量匹配 DSL,用户可以根据自己的需求来定义复杂的流量规则。

在灰度发布和 A/B test 的场景,我们需要将符合特征的流量导入到一个特定的服务实例。例如我们希望将 HTTP 流量路径前缀为/app-a 或者 /app-b 且 HTTP 方法为 POST ,且URL 参数包含group=vip ,且域名为*.app.com ,且 Header 中 location 为 east-1east-2 ,且 Cookie 中包含 uid ,且源 IP 在 1.1.1.1-1.1.1.100 范围内的流量中 50% 比例采样发送给 hello-world,那么我们可以定义下面一个流量规则:

"

apiVersion: crd.alauda.io/v1

kind: Rule

metadata:

labels:

alb2.cpaas.io/frontend: alb-demo-00080 # required, indicate the Frontend to which this rule belongs

alb2.cpaas.io/name: alb-demo # required, indicate the ALB to which this rule belongs

name: alb-demo-00080-topu

namespace: kube-system

spec:

backendProtocol: "" # as same as Frontend

certificate_name: "" # as same as Frontend

dslx: # this rule matches url starts with /app-a or /app-b and method is post,and url param's group is vip, and host is *.app.com, and header's location is east-1 or east-2 and has a cookie name is uid, and source IPs come from 1.1.1.1-1.1.1.100

- type: METHOD

values:

- - EQ

- POST

- type: URL

values:

- - STARTS_WITH

- /app-a

- - STARTS_WITH

- /app-b

- type: PARAM

key: group

values:

- - EQ

- vip

- type: HOST

values:

- - ENDS_WITH

- .app.com

- type: HEADER

key: LOCATION

values:

- - IN

- east-1

- east-2

- type: COOKIE

key: uid

values:

- - EXIST

- type: SRC_IP

values:

- - RANGE

- "1.1.1.1"

- "1.1.1.100"

enableCORS: false

priority: 5 # the lower the number, the higher the priority

serviceGroup:

services:

- name: hello-world

namespace: default

port: 80

weight: 50

"

ALB 经过数年的实践与迭代,已在众多用户的生产环境中得到广泛应用。随着云原生技术的迅猛发展,ALB 的应用前景必定更加广阔。

未来,我们将持续优化 ALB 的性能和稳定性,以满足更高的业务需求。同时进一步丰富其功能特性,以适应业务的多样性。我们计划在未来的版本中增加更多的流量调度策略,满足更复杂的业务场景。

此外,我们将积极参与到社区,借助社区的力量推动 ALB 的发展,并诚邀更多的用户和开发者加入我们的行列,共同推进云原生技术的发展与创新。


ALB联系信息:

Github:https://github.com/alauda/alb

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档