首页
学习
活动
专区
工具
TVP
发布

优化 Kubernetes 横向 HPA

图片来源: instagram.com/febin_raj Pod水平自动(Horizontal Pod Autoscaler, 简称HPA)可以基于 CPU/MEM 利用率自动Deployment...、StatefulSet 中的 Pod 数量,同时也可以基于其他应程序提供的自定义度量指标来执行自动。...HPA Resource类型不足 默认HPA提供了Resource类型,通过CPU/MEM使用率指标(由metrics-server提供原始指标)来应用。...好在1.20版本中已经支持了ContainerResource可以配置基于某个容器的资源使用率来进行,如果是之前的版本建议使用自定义指标替换。...另外,hpa核心的算法根据当前指标和期望指标来计算比例,并不适合所有场景,只使用线性增长的指标。

2.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Kubernetes HPA级别配置预览

:该类应用希望当大量数据到达时希望快速扩容,在数据减少时,希望快速的,以节省成本; 常规流量/数据处理应用:该类应用不那么重要,可以缓慢的扩容和,以避免快速带来抖动; 而当前版本的实现(1.15...结合前述的背景,不难得出,本次改进目标有两点: 允话用户(更精确)的控制速度; 允话用户在 HPA 层面控制速度(每个HPA可以有个性化的控制); 新特性设计 ?...有个参数(--horizontal-pod-autoscaler-sync-period) 控制的是 HPA controller 处理周期,每个周期中处理所有的 HPA(为HPA生成建议,并执行...percent (百分比) 顾名思义,这个是控制的百分比,可以简单的理解成把硬编码的 scaleUpLimitFactor = 2.0 改成可配置项。...pods (个数) 这个是控制每个的绝对个数,可以简单的理解成把硬编码的 scaleUpLimitMinimum = 4.0 改成可配置项。

1.5K10

Airbnb的动态kubernetes集群

Airbnb的动态kubernetes集群 本文介绍了Airbnb的集群的演化历史,以及当前是如何通过Cluster Autoscaler 实现自定义扩展器的。...我们每天的流量波动都非常大,需要依靠动态来保证服务的正常运行。 为了支持,Airbnb使用了Kubernetes编排系统。...这些演进可以划分为如下几个阶段: 阶段1:异构集群,手动扩容 阶段2:多集群类型,独立 阶段3:异构集群,自动 阶段1:异构集群,手动 在使用Kubernetes之前,每个服务实例都运行在其所在的机器上...阶段2:多集群类型,独立 集群配置的第二个阶段是伴随多负载类型出现的,每个试图在Kubernetes上运行的负载都有着不同的需求。为了符合这些需求,我们创建了一个抽象的集群类型。"...通过这种额外的负载灵活性,我们可以有更多的空间来在默认的Cluster Autoscaler扩展逻辑之外,实现成熟的策略。特别地,我们计划实现与Airbnb特定业务逻辑相关的逻辑。

66040

英雄联盟自动化利器

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

1.9K100

k8s滚动升级和

一、 手动扩容 k8s使用过kubectl scale命令进行扩容 假设原本的pod有3个,这个时候由于业务的增长,我们可以将pod增加到5个 kubectl scale rc blog --replicas...的值设置为比原来的pod数,k8s会杀掉一些pod,下面3个变成1个 kubectl scale rc blog --replicas=1 自动扩容(HPA) 用于实现基于CPU使用率进行自动Pod的功能...算法 最终pod的数量=ceil[当前的pod数量*(当前性能指标数/期望性能性能指标数)] ceil向上取整 比如:当前的cpu使用率是60%,但是我期望的是30%,并且当前已经存在2个pod了...HorizontalPodAutoscaler k8s提供HorizontalPodAutoscaler资源对象,让我们可以使用它进行配置的规则。...HorizontalPodAutoscaler有两个版本,autoscaling/v1 只支持CPU使用率的指标数,autoscaling/v2则用于支持基于任意指标的自动配置,包括基于资源使用率

1.2K30

K8S之HPA自动机制

简介 kubectl scale 命令可以来实现 Pod 的功能,但是这个毕竟是完全手动操作的,要应对线上的各种复杂情况,我们需要能够做到自动化去感知业务,来自动进行。...设置 可以通过使用kubectl来创建HPA。如通过 kubectl create 命令创建一个 HPA 对象,也可以通过kubectl autoscale来创建 HPA 对象。...如果指标变化太频繁,我们也可以使用 --horizontal-pod-autoscaler-downscale-stabilization 指令设置延迟时间,表示的是自从上次执行结束后,多久可以再次执行...这里系数是指标的期望值与目前值的比值,如果大于1表示扩容,小于1表示。...这里HPA扩容算法比较保守,如果出现获取不到指标的情况,扩容时算最小值,时算最大值。

50352

k8s中pod的自动

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

3.4K31

Kubernetes的垂直和水平的性能评估

此外,在性能和成本效益方面,还缺乏与垂直自动相关的分析,以及如何与水平自动进行比较。...为了在k8s中创建一个对象,需要创建一个包含所需规格的配置文件。K8s的对象可以用于不同的目的,如监控、网络配置、等。因此,需要根据不同的目的来选择不同的类型。...[2] [3] 为了使用水平,需要创建一个HorizontalPodAutoscaler配置文件,并定义一个CPU百分比使用限制,如果Pod的利用率达到该限制,则会创建出更多的副本。...[4] 为了使用这种方式,需要创建一个VerticalPodAutoscaler类型的对象,并指定需要自动的deployment。...验证环境 为了生成并分析实验结果,需要创建一个测试环境,并定义某种方式来生成资源利用率来触发自动策略,所有实验都实现了自动化,并保存和组织实验数据。

1.5K40
领券