首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Airbnb的动态kubernetes集群扩缩容

Airbnb的动态kubernetes集群扩缩容 本文介绍了Airbnb的集群扩缩容的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的。...我们每天的流量波动都非常大,需要依靠动态扩缩容来保证服务的正常运行。 为了支持扩缩容,Airbnb使用了Kubernetes编排系统。...这些演进可以划分为如下几个阶段: 阶段1:异构集群,手动扩容 阶段2:多集群类型,独立扩缩容 阶段3:异构集群,自动扩缩容 阶段1:异构集群,手动扩缩容 在使用Kubernetes之前,每个服务实例都运行在其所在的机器上...通过这种额外的负载灵活性,我们可以有更多的空间来在默认的Cluster Autoscaler扩展逻辑之外,实现成熟的扩缩容策略。特别地,我们计划实现与Airbnb特定业务逻辑相关的扩缩容逻辑。...当启用该功能时,用户可以更快地进行扩缩容。之前,使用优先级的用户在每次尝试ASG启动之间必须等待15分钟,然后才能尝试较低优先级的ASG。

69940

k8s中pod的自动扩缩容

HPA说明 Kubernetes从1.1版本开始, 新增了名为Horizontal Pod Autoscaler(HPA) 的控制器, 用于实现基于CPU使用率进行自动Pod扩缩容的功能。...周期性地监测目标Pod的资源性能指标, 并与HPA资源对象中的扩缩容条件进行对比, 在满足条件时对Pod副本数量进行调整。...Kubernetes在早期版本中, 只能基于Pod的CPU使用率进行自动扩缩容操作, 关于CPU使用率的数据来源于Heapster组件。...HPA控制器通过Metrics Server的API(Heapster的API或聚合API) 获取这些数据, 基于用户定义的扩缩容规则进行计算, 得到目标Pod副本数量。...当目标Pod副本数量与当前副本数量不同时, HPA控制器就向Pod的副本控制器 (Deployment、 RC或ReplicaSet) 发起scale操作, 调整Pod的副本数量,完成扩缩容操作。

3.6K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kubernetes的垂直和水平扩缩容的性能评估

    为了帮助选择最佳策略,本文主要对比了kubernetes中的水平和垂直扩缩容。...此外,在性能和成本效益方面,还缺乏与垂直自动扩缩容相关的分析,以及如何与水平自动扩缩容进行比较。...评估场景 考虑到垂直扩缩容至少需要一个监控的Pod,因此为了保持配置相似,需要为每个扩缩容策略配置2个初始Pods。...结论 每种自动扩缩容策略下都会执行者四种实验场景。每种方式的初始Pods数为2,每个Pod的CPU-core为0.15,并会随时间被扩缩容器所修改。...可以得出,在较长时间的实验中,可以生成更多的pod执行的历史数据,垂直自动扩缩容将更有效地执行自动扩缩容决策。

    1.7K40

    MySQL分布式架构扩缩容的初步设计

    MySQL分布式架构的扩缩容是一个很有意思的话题。严格的说,我们所说的这种架构方案是一种伪分布式架构,我们就做下统称。重点是扩缩容的思路上。...从扩容的角度来说,这也就是我们预期要做的事情,4个变8个,8个变16个。一套环境按照设定的分片规模可以扩容两次。...而缩容怎么来做呢,我们需要考虑得更细致一些,所以我就截取了物理分片1的一个相对详细的数据复制关系图。...扩容后,原本的db1,db2为active状态,而db3,db4在原来的Slave节点上是active状态 ? 这个基础上,我们需要保证的就是将原本隔离的节点数据统一为Master端active状态。...这个事情如果相对平滑的完成,其实整个分布式集群的管理就不在话下了。

    84820

    再战 k8s(13):Pod 的扩缩容

    文章目录 Pod的扩缩容 手动扩缩容机制 自动扩缩容机制 HPA的工作原理 指标的类型 扩缩容算法详解 HorizontalPodAutoscaler配置详解 Pod的扩缩容 实际生产系统, 会遇到某个服务需要扩容的场景...系统会假设这些Pod在需要缩容(Scale Down)时消耗了期望指标值的100%,在需要扩容(Scale Up)时消耗了期望指标值的0%,这样可以抑制潜在的扩缩容操作。...如果这些指标中的任意一个都无法转换为期望的副本数(例如无法获取指标的值),系统就会跳过扩缩容操作。...最后,在HPA控制器执行扩缩容操作之前,系统会记录扩缩容建议信息(Scale Recommendation)。控制器会在操作时间窗口(时间范围可以配置)中考虑所有的建议信息,并从中选择得分最高的建议。...,系统将针对每种类型的指标都计算Pod副本的目标数量,以最大值为准进行扩缩容操作。

    74210

    Pod的垂直扩缩容的触发指标以及配置方法

    图片Pod的垂直扩缩容是由以下指标触发的:CPU利用率:Pod的CPU使用率决定了是否需要增加或减少Pod的副本。可以通过定义CPU利用率的百分比阈值来触发垂直扩缩容。...内存利用率:Pod的内存使用率也是触发垂直扩缩容的重要指标。通过定义内存利用率的百分比阈值来触发垂直扩缩容。网络流量:如果Pod的网络流量超过了定义的阈值,可以触发垂直扩缩容。...磁盘利用率:如果Pod的磁盘利用率超过了定义的阈值,可以触发垂直扩缩容。磁盘利用率可以根据已用磁盘空间的百分比来衡量。以上指标可以根据业务需求自定义和配置。...通常,可以使用Kubernetes的水平Pod自动扩展(HPA)功能来实现自动垂直扩缩容。通过创建Pod资源并定义自动扩缩容的策略,可以在Pod资源中设置触发垂直扩缩容的指标和阈值。...在本例中,目标容器是yifan-online-container,并且定义了当CPU利用率达到80%时进行垂直扩缩容。可以根据需求和实际情况,定义和配置其他的指标和阈值,以实现自动垂直扩缩容。

    39141

    MySQL分布式架构扩缩容的初步设计(二)

    这是学习笔记的第 1834篇文章 之前总结了一篇扩缩容的初步设计,我们来做第二篇。...MySQL分布式架构扩缩容的初步设计 本次弹性扩缩容测试是尽可能在有限的服务器资源情况下对集群做扩容和缩容。 主要目的是想实现弹性的功能。...扩容其实相对来说会容易一些,也是一种可控的实现方式,在这种方案中的主要思路就是基于GTID的双向复制,这里的双向复制是一种比较纯粹的单向复制,即节点1只负责db1,db2的写入,而双方复制的另外一个节点...缩容是很少有环境去完整模拟的,在这里,有了之前的基础,其实实现起来是一种很自然的方式,本质还是通过复制的方式减少数据延迟,然后通过单向的复制关系达到数据的统一复制入口。...即db1,db2,db3,db4的分片节点数据统一有节点1来统筹,节点5只负责节点数据的复制。 ? 缩容后的效果如下: ?

    92230

    【kafka思考】最小成本的扩缩容副本设计方案

    在这篇文章开始前,你需要先了解 【kafka源码】kafka分区副本的分配规则 从【kafka源码】kafka分区副本的分配规则 中我们已经知道了,如何分区副本是如何进行分配的 那么当我们想要批量进行副本扩缩的时候...,我们本篇文章就好好思考一下设计方案 扩缩副本 想法1 我们指定,扩缩副本在kafka中是不直接支持的,但是我们可以通过kafka-reassign-partitions.sh工具来进行重新分配, 但是如果要给多个...topic来进行扩缩副本操作的话,要自己去一个个的配置副本分配的位置,那么这是一个灾难; 手动不仅容易出错,已非常容易让副本分配的不均衡, 可以看看之前的文章 kafka运维】副本扩缩容、数据迁移、副本重分配...如果还是想要实现我们的目标,最小成本的去扩缩副本,那么我们就需要找到是从哪个分区开始进行了 扩分区的操作 假如现在的分区 0,2,3 1,3,0 2,3,4 3,4,0 先去验证是否有冲突的地方; 比如上面...Topic之前是否有进行过分区扩容,或者有过自定义分区副本的分配; 就一个字简单, 而且扩缩容改动也是最小的,只新增要新增的副本; 对原来的副本不改动; 如果开发运维同学自己有对分区自定义分配, 这种方式也不会去改动这一块

    51630

    【kafka思考】最小成本的扩缩容副本设计方案

    在这篇文章开始前,你需要先了解 【kafka源码】kafka分区副本的分配规则 从【kafka源码】kafka分区副本的分配规则 中我们已经知道了,如何分区副本是如何进行分配的 那么当我们想要批量进行副本扩缩的时候...,我们本篇文章就好好思考一下设计方案 扩缩副本 想法1 我们指定,扩缩副本在kafka中是不直接支持的,但是我们可以通过kafka-reassign-partitions.sh工具来进行重新分配, 但是如果要给多个...topic来进行扩缩副本操作的话,要自己去一个个的配置副本分配的位置,那么这是一个灾难; 手动不仅容易出错,已非常容易让副本分配的不均衡, 可以看看之前的文章 kafka运维】副本扩缩容、数据迁移、副本重分配...如果还是想要实现我们的目标,最小成本的去扩缩副本,那么我们就需要找到是从哪个分区开始进行了 扩分区的操作 假如现在的分区 0,2,3 1,3,0 2,3,4 3,4,0 先去验证是否有冲突的地方; 比如上面...Topic之前是否有进行过分区扩容,或者有过自定义分区副本的分配; 就一个字简单, 而且扩缩容改动也是最小的,只新增要新增的副本; 对原来的副本不改动; 如果开发运维同学自己有对分区自定义分配, 这种方式也不会去改动这一块

    83120

    「走进k8s」Kubernetes1.15.1的Pod 自动扩缩容(23)

    前面说过可以通过--replicas的方式来扩缩容,或者是通过dashboard的方式界面化的扩缩容。...其实都需要手动,如果kubernetes可以通过当时容器使用情况来自动的扩缩容,其实有的可以进行预知,有的根本就是不确定的,纯手工去做也是不现实的人海战术。 ? (一)HPA ?...用于支持自动扩缩容的 CPU/memory HPA metrics:metrics-server;2....③ 创建自动扩所容的hpa 最大cup 5%,最少1个pod,最多5个pod。根据设定的 cpu使用率(5%)动态的增加或者减少pod数量。...同样的这个时候我们来关掉busybox来减少负载,然后等待一段时间观察下HPA和Deployment对象 kubectl get pod 上边的图是5个pod,下面变成了1个完成了缩容 ?

    2.8K21

    一种简单实用、支持动态扩缩容的分库分表方案

    在互联网的业务中,mysql使用很广泛,且是最容易产生性能瓶颈的服务组件,一般稍微有点业务量的toC业务,都需要在系统设计阶段考虑好扩缩容方案,但又不能过度设计造成资源浪费,所以需要有一个灵活的分库分表方案...3、扩缩容方案 如何合理地分库分表不难,难的是如何才能最大限度减少扩容缩容带来的迁移问题。...实例升级对业务是透明的,避免了扩缩容的工作量。...C) db为逻辑库,并配置化 上面分库得到的db都是逻辑库,这些db可以在一个mysql实例上,也可以在多个mysql实例上,需要将每个db连接配置化,这样后续扩缩容时不用修改代码,配合dba迁移db后修改配置即完成扩缩容...D) 执行扩容缩容 执行扩容缩容的过程,就是不断在逻辑db和 mysql实例之间做迁移,然后服务配合改一下配置即可。

    1.9K50

    HPA 还是 KEDA,如何在 Kubernetes 中更有效的使用弹性扩缩容?

    但是构建云原生应用程序时最常见的问题还是弹性扩缩容。 什么是缩放?我们应该怎么做才能实施有效的扩展实践?Kubernetes 在这方面对我们有帮助吗?...将分享一些关于应用程序自动缩放的见解,并谈到使用 K8s 自动缩放器时面临的一些现实挑战。 缩放是一种配置应用程序的过程,它可以根据负载的变化进行不同的资源发放。...但我是事件驱动架构的重度用户。我的很多管道都是异步的。这意味着当我的系统负载为零时,我可以将后台任务缩减到零以节省成本。 你觉得这个功能有必要吗?在下面的评论中告诉我!...由于 HPA 的扩展算法的工作方式,不可能从零开始扩展您的应用程序。 HPA 缩放算法 如果你currentReplicas变为零,当你缩放到零时,你的乘数也将变为零。...它将如何使我们的生活变得轻松 ? KEDA 是一个基于 Kubernetes 的事件驱动自动扩缩器。

    1.5K10

    基于k8s Deployment的弹性扩缩容及滚动发布机制详解

    ② CURRENT 当前处Running态的Pod的个数 ③ UP-TO-DATE 当前处最新版本的Pod的个数。...4.5 FAQ 滚动更新时控制的是副本集,对于上层的service,什么时候切换到新的pod,期间会涉及到外部请求负载到旧版本的pod吗?...在滚动更新的过程中,Service的流量转发会有怎样的变化呢? service只会代理readiness检查返回正确的pod。...: ReplicaSet的数目 及每个ReplicaSet的属性 而一个应用的版本,对应一个ReplicaSet;该版本应用的Pod数量,由ReplicaSet通过它自己的控制器(ReplicaSet...deployment 关注的应该是自身的api对象和rs的api对象,但是我看deployment controller 的源码中也关注了pod的变更,这是为了处理哪种情况?

    68710

    Fluid 0.6 版本发布:数据感知的Pod调度与数据集自动弹性扩缩容

    丰富数据集操作功能,支持数据集自动弹性扩缩容、挂载点动态更新。 缓存引擎新增与增强,支持缓存引擎高可用并新增公有云缓存引擎。...数据集在线弹性缓存扩缩容 Fluid v0.5 开启了在线弹性扩缩容之路,当时提供了在线手动扩缩容的能力。然而,在真实的生产环境中,手工操作扩缩具有较大的复杂度和延迟性。...Fluid基于Runtime提供了缓存空间、现有缓存比例等性能指标, 结合自身对于Runtime资源的扩缩容能力,从而达到数据缓存按需伸缩能力。...进一步,我们发现根据数据缓存量比例触发自动的数据缓存能力弹性扩缩容具有非常多的优势,但也有一个缺陷,就是需要根据资源压力计算出合理的值后调整,这就存在一定的程度滞后性。...因此Fluid v0.6通过结合CronHPA提供了定时扩缩容的能力,从而根据应用自身使用数据的时间特点,实现数据缓存的按时扩缩容,充分利用了集群计算和存储资源加速应用的数据访问性能。

    80260

    TiDB 扩容过程中 PD 生成调度的原理及常见问题丨TiDB 扩缩容指南(一)

    导读作为一个分布式数据库,扩缩容是 TiDB 集群最常见的运维操作之一。本系列文章,我们将基于 v7.5.0 具体介绍扩缩容操作的具体原理、相关配置及常见问题的排查。...因此对于扩缩容来说,我们主要关心的还是以下两点:资源均衡调度指令产生速度(PD 上调度产生的速度 )资源均衡调度指令执行速度(TiKV 间数据搬迁的速度)本系列文章将围绕以上两个逻辑,重点介绍扩缩容过程中的核心模块及常见问题...,分为以下几个部分:扩缩容调度生成原理及常见问题:扩容过程中调度生成原理及常见问题缩容过程中调度生成原理及常见问题扩缩容过程调度执行(TiKV 副本搬迁)的原理及常见问题本文我们将重点介绍 TiDB 扩容过程中...扩容过程中 PD 生成调度的原理及常见问题一般的,当集群中 TiKV 资源跑到 75% 左右时,一般的调优手段无法解决资源使用上的瓶颈,此时,我们就需要通过 添加 tikv 节点的方式,来提高集群的整体性能...的速度,也就是物理数据的搬迁速度。

    8610

    英雄联盟自动化扩缩容利器

    自动化扩缩容的目的主要有三个部分,首先是用户体验的保障,我们必须以最快的响应速度去应对用户增长的需求,否则必然会出现大规模的掉线或者拥挤排队,影响游戏基本体验;其次是资源的最有效利用,英雄联盟业务的单位运营成本...关于自动化扩缩容利器的用户交互,主要用的是类似汽车的仪表盘的形式来展示相关扩缩容时实施人员比较关心的数据。如图(2) ?...所向披靡-无所不能的容量云: 二期功能加入了监控和自动触发、缩容等功能,真正实现采集性能数据、按照模型分析出结论、实施扩缩容、性能数据达标等一系列操作,流程上把容量管理这件事做成闭环。...自动采集数据、分析出决策、实施扩缩容操作的整体流程架构图如下: ?...才将云中的服务器扩到游戏大区中;如红色的箭头所示,通过自动化的缩容,我们做到了自动化的将游戏大区中,尚且富余的服务器资源返还给业务云,然后由云在分配给需要使用的游戏大区,这样通过自动化的扩、缩容服务,我们做到了服务器资源自动化的动态调用

    2K100

    如何快速构建稳定、低延时的多人游戏的部署环境?

    腾讯游戏服务器引擎(Game Server Engine,缩写GSE),支持有状态的游戏服务部署和扩缩容,实现服务发现、高效灵活的服务器伸缩和就近调度的能力,帮助开发者快速构建稳定、低延时的多人游戏的部署环境...这是一个有状态的扩缩容场景:对于游戏服务,尤其是对战服务来说,不能是简单添加一个clb(负载均衡)就能搞定。在游戏服务里需要断线重连,能找到之前连接的服务器;另外游戏过程不能因为缩容中断游戏。...游戏服务器引擎(Game Server Engine,缩写GSE)提供专用游戏的服务器托管服务,支持有状态的游戏服务部署和扩缩容,实现服务发现、高效灵活的服务器伸缩和就近调度的能力,帮助开发者快速构建稳定...(2)GSE能实现有状态的缩容 GSE 不会缩减有进程运行的实例,低负载触发缩容时通知游戏进程正在缩容该台服务器,并屏蔽新的游戏服务器会话分配到该台服务器上,但不强制缩减实例导致游戏无法进行,等待游戏进程上没有玩家在对局时...不需要提前在多个区域部署相同数量的服务器,从而达到0成本容灾的效果。 9.png 4. GSE和普通弹性伸缩的区别——GSE专注于有状态扩缩容场景 游戏中有两个特殊需求:断线重连、游戏中不能退出。

    10.1K339

    互联网工程实践:这套分布式IM即时通讯系统,是如何做到弹性扩缩容的?

    ,并梳理清楚发送消息的交互链路、单聊和群聊的交互链路。...(3)其他基础性功能实现 除了上述分层架构外,对于建设分布式IM即时通讯系统来说,还要考虑异常监控、服务注册与发现、可视化、服务降级与兜底数据、服务限流、服务容灾、容量规划与扩缩容和全链路压测等。...(4)后端平台获取到用户B连接的IM即时通讯服务的ID后,会向RocketMQ中用户B连接的IM即时通讯服务ID对应的Topic发送消息。...(3)每个启动的IM即时通讯服务实例在集群中都有一个唯一的ID。 (4)每个IM即时通讯服务,都只监听自身ID对应的RocketMQ中Topic的消息。...(6)用户发送消息时,会根据目标用户的ID和终端从Redis中获取IM即时通讯服务的ID,进而向当前IM即时通讯服务的ID对应的RocketMQ的Topic发送消息。

    36611

    50W+ 小程序开发者背后的数据库降本增效实践

    TDSQL-C Serverless 的技术实现   传统云数据库并没有实现自动扩缩容、按使用量计费、无使用无费用。...在现实里,如果游戏厅就在你房间旁边,你房租的价格也会比其他地方的更贵。 计算跟存储分离,就是让房子和客厅解耦。只要解决传送问题(自动扩缩容)就可以让这个房间的成本回归到它本身的价值。...云服务器虽然方便,但价格并不便宜,目前常见的服务器有两种——按时付费和包年包月,按时付费价格有点高,包年包月不灵活; 资源利用率低。...如果你不使用,就像关上的水龙头,不收费。 常见的自动扩缩容业务场景   慢查询。...当然你也可以选择在活动前扩容,活动后缩容。但这总的也不方便,而且并不是所有的活动都有足够的时间去规划。所以这时候就需要一个自动扩缩容的能力。 定时任务。很多业务都会有定时任务的需求。

    1.2K30
    领券