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

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 belongsalb2.cpaas.io/name: alb-demo            # required, indicate the ALB to which this rule belongsname: alb-demo-00080-topunamespace: kube-system
spec:backendProtocol: ""                       # as same as Frontendcertificate_name: ""                      # as same as Frontenddslx:                                     # 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: METHODvalues:- - EQ- POST- type: URLvalues:- - STARTS_WITH- /app-a- - STARTS_WITH- /app-b- type: PARAMkey: groupvalues:- - EQ- vip- type: HOST values:- - ENDS_WITH- .app.com- type: HEADERkey: LOCATION values:- - IN- east-1- east-2- type: COOKIEkey: uidvalues:- - EXIST - type: SRC_IPvalues:- - RANGE- "1.1.1.1"- "1.1.1.100"enableCORS: falsepriority: 5                              # the lower the number, the higher the priorityserviceGroup:services:- name: hello-worldnamespace: defaultport: 80weight: 50

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle PL/SQL Programming 第9章:Numbers 读书笔记

总的目录和进度,请参见开始读 Oracle PL/SQL Programming 第6版 本章谈3点: 可使用的数字数据类型如何在数字和文本间转换PL/SQL 内置数值函数 Numeric Datatypes NUMBER:平台无关的实现,适合处理货币金额PLS_INTEGER 和 BINA…

前端面试题汇总

基础面试题 1.new 操作符做了那些事 function Fun(name){this.name name } Fun.prototype.sayHi funtion(){console.log(this.name) }function mockCreate(fn, ...args){let obj Object.create({}) // 创建一个空对象Object.setPrototypeOf(obj, fn.prototype) // 空对象…

day02vue学习

day02 一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 (演示) 渲染 / 删除 / 修…

速卖通批量注册买家号安全吗?怎么弄?

在速卖通等跨境电商平台上,买家号的注册与养号过程繁琐而复杂。传统的手动注册方式效率低下,难以满足大规模的需求。而跨境智星系统凭借其全自动化的功能,能够轻松实现买家号的批量注册与养号,大大提高了效率。 使用跨境智星系统进…

200W年薪的大佬 随手丢给我“Spring速成宝典”看完这些知识点直接定级P7

面试官:答的很好,最后一个问题:如果没有Spring,你打算怎么开展工作? 这个思考了几分钟后,程序员小建是这么回答的:Spring的核心源码,比如:IOC、AOP、Spring事务、MVC原理…

Explain详解与索引优化最佳实践

Explain工具介绍 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈 在select语句之前增加explain关键字,MySQL会在查询前设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL 注意: 如果from中包含子查询,仍会执行该子查询,将结果…

DAY by DAY 史上最全的Linux常用命令汇总----man

man是按照手册的章节号的顺序进行搜索的。 man设置了如下的功能键: 功能键 功能 空格键 显示手册页的下一屏 Enter键 一次滚动手册页的一行 b 回滚一屏 f 前滚一屏 q 退出man命令 h 列出所有功能键 /word 搜索word字符串 注意&#xff1a…

【文献阅读】A Fourier-based Framework for Domain Generalization(基于傅立叶的领域泛化框架)

原文地址:https://arxiv.org/abs/2105.11120 摘要 现代深度神经网络在测试数据和训练数据的不同分布下进行评估时,存在性能下降的问题。领域泛化旨在通过从多个源领域学习可转移的知识,从而泛化到未知的目标领域,从而解决这一问…

03-自媒体文章发布-黑马头条

自媒体文章发布 1)自媒体前后端搭建 1.1)后台搭建 ①:资料中找到heima-leadnews-wemedia.zip解压 拷贝到heima-leadnews-service工程下,并指定子模块 执行leadnews-wemedia.sql脚本 添加对应的nacos配置 spring:datasource:driver-class-name: com…

图解Diffusion扩散模型+代码

0、项目视频详解 视频教程见B站https://www.bilibili.com/video/BV1e8411a7mz 1、diffusion模型理论(推导出损失函数) 1.1、背景 随着人工智能在图像生成,文本生成以及多模态生成等领域的技术不断累积,如:生成对抗网…

SD-WAN技术如何保障网络的持续连接和稳定性

在当今数字化时代,企业对于网络的稳定性和持续连接性需求日益增加。SD-WAN作为一种新兴的网络解决方案,为企业提供了有效的方式来实现网络的持续连接和稳定性。本文将探讨SD-WAN技术如何保障网络的持续连接和稳定性。 1、多路径冗余技术 SD-WAN采用了多…

初识Python语言-课堂练习【pyhton123题库】

初识Python语言-课堂练习【pyhton123题库】 一、单项选择题 1、Guido van Rossum正式对外发布Python版本的年份是: A 2008B 1998C 1991D 2002 【答案】C 【解析】暂无解析2、下面不是Python语言特点的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪…

移动端App、小程序、公众号该怎么选择,你真得知道吗?

当下移动App,小程序泛滥,如何选择,你真的知道吗? 今天我们就聊聊App、小程序、公众号、微应用具体是什么?怎么样开发?适合在什么情况下使用? 1.App、小程序、公众号、微应用之初识 App App本质来说就是手…

机试:蛇形矩阵

问题描述: 代码示例: //蛇形矩阵 #include <bits/stdc.h> using namespace std;int main(){int n;cout << "输入样例" << endl; cin >> n;int k 1; for(int i 0; i < n; i){if( i %2 0){//单数行for(int j 0; j < n; j){ cout &…

安装包逆向1

1.找到程序的入口点 在IDA中我们看到函数非常多&#xff0c;但是一般都是有主要的入口的&#xff0c;所以找一下有没有主函数 可以直接 CtrF直接查找 CNsInstaller::CNsInstaller 这里搞半天在获取文件路径 CNsInstaller::StartInstall CNsInstaller::InstallFunc char…

springboot268码头船只货柜管理系统

码头船只出行和货柜管理系统的设计与实现 摘要 针对于码头船只货柜信息管理方面的不规范&#xff0c;容错率低&#xff0c;管理人员处理数据费工费时&#xff0c;采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。 码头船只货柜管理系统能够实现货柜管理…

Spring 面试题及答案整理,最新面试题

Spring框架中的Bean生命周期是什么&#xff1f; Spring框架中的Bean生命周期包含以下关键步骤&#xff1a; 1、实例化Bean&#xff1a; 首先创建Bean的实例。 2、设置属性值&#xff1a; Spring框架通过反射机制注入属性。 3、调用BeanNameAware的setBeanName()&#xff1a…

某电信公司组织结构优化咨询项目成功案例纪实

——构建前后端组织结构&#xff0c;提升组织运营效率 随着企业的不断发展&#xff0c;行业的竞争也越来越激烈&#xff0c;企业只能不断调整自身的战略才能更好的适应这样的大环境。在战略调整的过程中&#xff0c;企业往往会面临这样的问题&#xff1a;管理层的经营理念各不…

哪些订单预计会亏?一张报表告诉你

各位数据的朋友&#xff0c;大家好&#xff0c;我是老周道数据&#xff0c;和你一起&#xff0c;用常人思维数据分析&#xff0c;通过数据讲故事。 销售订单一般是企业在销售活动中重要的单据&#xff0c;当我们接到一个客户的订单时&#xff0c;就需要在系统中录入一个销售订…

STM32 | STM32F407ZE中断、按键、灯(续第三天)

上节回顾 STM32 | 库函数与寄存器开发区别及LED等和按键源码(第三天)一、 中断 中断概念 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行(面试题)。 STM32外部中断…