首页 >> 行情 >> Airbnb 如何实现 Kubernetes 集群动态扩张

Airbnb 如何实现 Kubernetes 集群动态扩张

2025-11-11 12:16:56

少更加区别于的战斗群可以减少需要测试的内置比例。其次,以前 Airbnb 以外都在 Kubernetes 战斗群上调试,战斗群紧凑性为降低价格提供了一个重要凸轮。整合战斗群种类使我们只能在每个战斗群中都调试各不完全一致的岗位阻抗。岗位阻抗种类肽键——有大有小——可以仅仅更加好的装箱(bin packing)和紧凑性,从而提高利用率。得益于岗位阻抗的这种紧凑,我们有更加多的空间在 Cluster Autoscaler 默认的扩充范式之外全面实施复杂的扩充作法。具体来说,我们的前提是仅仅与 Airbnb 具体销售业务范式特别的扩充范式。

上图 3:顺式 Kubernetes 战斗群

随着我们对战斗群进行时扩充和整合(仅仅顺式战斗群,每个战斗群有多个示例种类),我们开始在扩充过程中都仅仅特定的销售业务范式,并发现有应当对相应扩充不当来作一些改写。下一节将详细描述我们对 Cluster Autoscaler 所来作的一些革原先,目标是使其更加加紧凑。

革原先 Cluster Autoscaler

自判别 gRPC Expander

我们对 Cluster Autoscaler 所来作的极为重要的革原先是提供了一种原先的方法来确切要扩充的终端分组。在内部,Cluster Autoscaler 保障着一个终端分组年表(它们同态到各不完全一致的候选扩充),它都会针对举例来说的 Pending(不可调度)pod 集进行时调度模拟,调制借助于不来作到 pod 调度供给的终端分组。如果有任何 Pending(不可调度)pod,Cluster Autoscaler 都会尝试扩充战斗群以容纳这些 pod。任何来作到所有 pod 供给的终端分组都都会被发送至给一个叫做 Expander 的模块。

上图 4:Cluster Autoscaler 和 Expander

Expander 负责根据一般来说敦促必要性调制终端分组。Cluster Autoscaler 内置了许多各不完全一致的扩充器可选择,每个可选择都有各不完全一致的范式。例如,默认是随机扩充器,它从一般来说的可选择中都机都会均等地随机自由选择。另一个可选择,也是 Airbnb 历来运用于的可选择,是 路由器端扩充器,它根据用户选定的分层路由器端年表自由选择要扩充的终端分组。

随着我们迈向顺式战斗群范式,我们发现默认的扩充器不够成熟阶段,未来作到我们以价格和示例种类自由选择为中都心的更加复杂的销售业务供给。

假如有这样一个持续性,我们想仅仅一个增量路由器端扩充器。迄今为止,路由器端扩充器只允许用户选定终端分组的各不完全一致一般来说,这仅仅它将始终以确切的方式将按顺序扩充一般来说。如果一个层中都有多个终端分组,它将随机自由选择。在默认设置下,未仅仅将两个终端分组置于在同一一般来说的增量优先作法,在 80% 的时间内扩充一个,在 20% 的时间内扩充另一个。

除了迄今为止支持者的扩充器发挥作用局限性之外,还有一些一般来说上的顾虑:

Cluster Autoscaler 的发布新闻渠道相当完全符合,变更加需要时间审核,然后再合并到下游。 然而,我们的销售业务范式和所需的扩充作法在迅速推移。 开发一个今天可以来作到供给的扩充器,可能未来作到我们未来的供给。 我们的销售业务范式是特定于 Airbnb 的,该软件未必如此。 任何我们针对自己的范式所来作的改写,都不都会对下游有什么功绩。

为此,我们希望 Cluster Autoscaler 中都有一个原先扩充器种类可以来作到下列敦促:

我们希望能有一个既可扩充又能为他人所用的外面。 其他人在大规模运用于默认的 Expander 时不都会遇到类似的限制,我们希望提供一个区别于的解决办法,并向下游功绩基本功能。 我们的解决办法一定会可以与 Cluster Autoscaler 独自地面部队,并允许我们更加迅速地响应迅速推移的销售业务供给。 我们的解决办法一定会适合 Kubernetes Cluster Autoscaler 生态系统,这样我们就不必延后地保障 Cluster Autoscaler 的一个分叉。

基于这些敦促,我们提借助于了一个设计,将扩充职责从 Cluster Autoscaler 的核心范式中都分离借助于来。我们设计了一个可插拔的“自判别扩充器”,它被仅仅为一个 gRPC 服务端(相似 自判别皓提供商)。这个自判别扩充器由两个部分分均是由。

第一个模块是一个内置于 Cluster Autoscaler 的 gRPC 服务端。这个 Expander 运用于了与 Cluster Autoscaler 中都其他 Expander 完全一致的模块,负责将 Cluster Autoscaler 中都直接的终端分组电子邮件变换为判别好的 protobuf 模式(如下上图表),并转送 gRPC 公共路由器的输借助于,变回再次的可选择年表,供 Cluster Autoscaler 扩充。

service Expander { rpc BestOptions( BestOptionsRequest) returns( BestOptionsResponse) }

message BestOptionsRequest{ repeated Option options; map< string, k8s.io.api.core.v1.Node> nodeInfoMap; }

message BestOptionsResponse {repeated Option options;}message Option {// ID of node to uniquely identify the nodeGroupstringnodeGroupId; int32 nodeCount; stringdebug; repeated k8s.io.api.core.v1.Pod pod;}

第二个模块是 gRPC 公共路由器,这需要由用户自己编写。这个公共路由器的作法是作为一个原则上的运用程序或公共服务来调试,在自由选择要扩充的终端分组时,可以运用于从服务端传过来的特定电子邮件调试随意复杂的扩充范式。迄今为止,通过 gRPC 发送至的 protobuf 电子邮件基于发送至给 Cluster Autoscaler 中都的 Expander 的电子邮件稍微来作了些变换。

从我们前面提到的例子来看,增量随机路由器端扩充器的仅仅可以很最简单,让公共路由器从路由器端一般来说年表和内置上图中都读取增量总和内置并作借助于相应的自由选择即可。

上图 5:Cluster Autoscaler 和自判别 gRPC Expander

我们的仅仅包括一个故障安全可选择。同意运用于该可选择,将 多个扩充器 作为参数发送至给 Cluster Autoscaler。有了这个可选择,如果公共路由器发生故障,Cluster Autoscaler 始终只能运用于后备扩充器进行时扩充。

由于是作为一个独立国家的运用程序调试,扩充范式可以在 Cluster Autoscaler 之外开发。而且,由于 gRPC 公共路由器可以由用户根据自己的需要进行时独创开发,所以这个解决办法也是可扩充的,对整个原先社区都很简便。

在内部,自 2022 年初开始,Airbnb 一直在运用于这个原先的解决办法来扩充我们所有的战斗群,不了有任何问题。它使我们只能一个系统自由选择何时扩充某些终端分组,以来作到 Airbnb 的销售业务供给,仅仅了我们开发可扩充的自判别扩充器的最初前提。

在本年度早些时候,我们的自判别扩充器 被下游的 Cluster Autoscaler 所接受,并将在下一个版本(v1.24.0)发布新闻时推借助于。

Autoscaler 的其他革原先

在移入到顺式 Kubernetes 战斗群的过程中都,我们发现了其他一些 Bug 以及 Cluster Autoscaler 的可革原先之出口处。下面简要介绍一下这些持续性:

原定中都止不了有运用于量的 AWS ASG: 缩短 Cluster Autoscaler 加载 AWS EC2 西南侧来检查 ASG 究竟有运用于量,进而判别它们意上图扩充的终端究竟作好的等待时间。 仅仅这一改写后,用户可以更加容易地仅仅可靠扩充。 基本上,运用于路由器端的用户必须在每次尝试启动 ASG 之后等待 15 分钟,再尝试低路由器端的 ASG。 缓存启动C#,减少 AWS API 加载: 为 AWS ASG 启动C#引入缓存。 这一改写让我们可以运用于大量的 ASG,这对我们的广义战斗群作法至关重要。 基本上,对于空的 ASG(战斗群中都举例来说不了终端),Cluster Autoscaler 都会反复加载 AWS 西南侧来受益启动C#,导致 AWS API 确保安全。

小 珠

在过往的四年里,Airbnb 在 Kubernetes 战斗群内置上取得了长足的不断进步。将 Airbnb 仅次于的计算部分置于单个平台上,为提高紧凑性提供了一个强有力的凸轮。以前,我们正专注于一般化我们的战斗群设置(顾虑下“Cattle 而非 Pets”)。通过在 Cluster Autoscaler 中都开发和运用于更加复杂的扩充器(以及修复 Autoscaler 的其他一些小问题),我们仍然仅仅前提,以价格和混合示例种类为中都心开发借助于特定于销售业务的复杂扩充作法,同时也为原先社区功绩了一些简便的特性。

要认识更加多关于我们顺式战斗群移入的细节,请观看我们的 Kube-Con 演说。本年度,我们也都会参加 KubeCon EU,欢迎来和我们交流!

查看英文原文:

%3A%2F%2Fmedium.com%2Fairbnb-engineering%2Fdynamic-kubernetes-cluster-scaling-at-airbnb-d79ae3afa132%3FaccessToken%3DeyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTQ5NDk4MTAsImZpbGVHVUlEIjoic1VVRnNhUEN3Tm9JMG93YyIsImlhdCI6MTY1NDk0OTUxMCwidXNlcklkIjo1MDA3OTEyfQ.OnBZWDBjAK4WxfHykQj5xEPw9I5O7XHxhG3hmNYcc0Q

一般来说系统封闭、后台自由派,为什么前端仍能一路横冲直撞?

软件架构如何“以不变应万变”

风口浪尖的 Web 3.0,接下来的路该怎么走?

南阳赋红码事件程序员不背锅;马斯克:向TikTok和微信学习;TCL达成协议将修改绩效考核指标 | Q资讯

点个在看少个 bug👇

贵阳甲状腺正规的医院
渭南白癜风医院哪家最好
成都看白癜风到哪个医院好
夏季防暑小妙招
夏天腹泻怎么办
严重咳嗽吃什么药能快速止咳
急支糖浆功效
药品库
血糖正常值是多少
气血不畅

上一篇: 广东:2022年新增公司股票共计4326亿元 目前已发行完毕

下一篇: 烟台下半年首宗宅地下线 起价2.9亿将于8月8日出让

相关阅读
视频会议一体机的技术方法论和发展趋势

须为基站造就越来越少的接收器其余部分范围。近似于的,国际上对讲机元件系统设计关键作用了不可缺更少的主导作用,基于对讲机元件的并能转变成在空间内转变成一个空间内波形器,在期望刺耳直达声侧向现成一个拾音并

2025-11-11 00:16:56
构建超载恢复系统

特质的状况。忽略,复杂的手动直至 ToDo 清单常常更会使建筑工程公司们的士气和自热诚下降。 建筑工程建设分级因特网短路: 建筑工程建设短路就像一个管理系统上起因炸弹发生

2025-11-11 00:16:56
图解|2022年上半年金融服务统计数据

个得票数发展中国家外汇储备限额3.07万亿美元6同年末发展中国家外汇储备限额为3.07万亿美元。

2025-11-11 00:16:56
《大咖说》丨邦克不锈钢全屋定制王靖总监:技术创新新产品、品质保障服务、营销赋能客户

顾问表示,更进一步分站还是在于结构设计。无论是自带还是多其所运转,都无法离开结构设计能关键在于的支撑。接下来,阿西铝制全屋自带将继续做好产品线延伸的多其所自带业务,并通过开发结构设计、时尚品牌电子商务

2025-11-11 00:16:56
#盛京银行回应在支付宝无法提现#重登热搜 网友:早上才支取 并无问题

7同年11日消息,#盛京铜行答复在淘宝网很难提现#夺下圣万桑搜,留言:早上才支取,并无问题。

2025-11-11 00:16:56