首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

优化 Kubernetes 横向扩缩容 HPA

图片来源: instagram.com/febin_raj Pod水平自动扩缩(Horizontal Pod Autoscaler, 简称HPA)可以基于 CPU/MEM 利用率自动扩缩Deployment...HPA Resource类型不足 默认HPA提供了Resource类型,通过CPU/MEM使用率指标(由metrics-server提供原始指标)来扩缩应用。...但对于多容器Pod,比如Pod包含多个容器con1、con2(request都为1cpu),con1使用率10%,con2使用率100%,HPA目标使用率60%,按照目前方式得到使用率55%不会进行扩容...性能问题 单线程架构 默认hpa-controller是单个Goroutine执行,随着集群规模增多,势必会成为性能瓶颈,目前默认hpa资源同步周期会15s,假设每个metric请求延时100ms...总结 Kubernetes提供原生HPA只能满足一部分场景,如果要生产环境,必须对其做一些优化,本文总结了当前HPA存在不足,例如在性能、使用率计算方面,并提供了解决思路。

2.2K30

原生Kubernetes监控功能详解-Part2

在上篇文章中我们提到过,Kubernetes附带了一些内置监控工具,包括: Kubernetes dashboard:集群运行资源提供一个概览。...timeoutSeconds:探针超时时间,以秒单位(默认值1)。 successThreshold:探针成功最小连续成功检查次数。 failureThreshold:放弃之前探针失败次数。...但是,创建autoscaler最简单方法是以现有部署目标,如下所示: ? 这将为我们之前创建hpa-demo部署创建一个autoscaler,而且预计CPU利用率50%。...为了查看HPA运行情况,我们需要运行一个在CPU创建负载命令。这里有很多种方法,但一个非常简单例子如下: ? 首先,检查唯一pod负载。因为它目前处于空闲状态,所以没有太多负载: ?...现在,让我们在当前pod生成一些负载。一旦负载增加,我们应该就能看到HPA开始自动创建一些额外pod来处理所增加负载。让以下命令运行几秒钟,然后停止命令: ? 检查当前pod的当前负载: ?

65710

能省 50% 成本,为啥你不早点让我用 HPA

如上图,当调度器在给 Pod 选择一个合适 Node 时,Node Pod Request 总和越少,打分越高,越容易被选中。...因为默认调度器是静态调度,只看 Request 和 Node Request 总量,而不考虑实际使量。...4.2 集群应用 Pod 相关告警 由于调试 HPA 会涉及 Pod 创建,为了避免扩容失败,需要对 Pod 相关指标进行监控。...上限最好设置得比平时多一些,同时设置 5 倍数宜,方便识别扩容数量达到 HPA 上限之后,继续增加。 CPU 使用率 CPU 使用率设置得越低,扩容时就越灵敏;设置得越高,资源利用率就越低。...HPA 及相关参数 给不同应用设置 Request、Limit、HPA 副本上限、HAP 副本下限、HPA CPU 使用率,是一件繁琐事情,建议先绘制一个 Grafana 计算面板,可以实时计算调试。

38700

从脆弱到完美:Kubernetes自我修复实践

这是 City Storage Systems 核心基础设施团队核心设计原则。然而,多年来,我们了解到托管 Kubernetes 发行版实际运营成本实际并非零。 即使是公有云也会偶尔出现故障。...托管 Kubernetes 仍然受益于开发人员创造杠杆作用特定于业务定制。 抽象不会消除底层。...但是,AKS Spot 节点缺乏任何 SLA,这可能导致潜在突然抢占。我们经历了一次事件,其中大量 Spot 节点抢占导致多个有状态工作负载失败,从而导致级联应用程序故障并导致停机。...当 AKS Spot 节点被抢占时,在底层 VM 突然被移除前 30 秒会发出一个计划抢占事件。该节点未被隔离,工作负载未正常关闭,并且该节点未从 Kubernetes API 服务器注销。...为了解决此问题,我们实施了一种自修复 Automation ,用于标记 CPU 核心少于一半被配置处理来自网络接口中断节点。

8610

成本最高降低70%,腾讯大规模业务集群云原生成本优化实践!

/Extended Resource 资源使用率,也就是节点实际负载 节点 CPU/Memory/Extended Resource 资源分配率,kubernetes Node 中Request 分配率...,kubernetes 调度器是基于 PodRequest 来调度,只有当节点剩余足够 Request 资源时,才能将 Pod 调度到节点运行 业务 Pod 组件负载 业务 Pod CPU/...通过扩展资源封装节点可超卖 CPU 资源,新建 Pod 声明 CPU Request/Limit 改成对应扩展资源,Pod Qos 策略必须 Best Effort。...与一体弹性伸缩组件,主要目标是减少申请资源和实际资源使用之间差异,同时最大程度地降低因 Memory 不足(OOM)错误CPU 高负载导致其性能和可用性下降。...(比如扩容稳定窗口180秒、缩容随机12-24h、扩容 CPU/Memory 阈值90、缩容30%、HPA最小最大副本数等)。

2.6K10

成本最高降低70%,腾讯大规模业务集群云原生成本优化实践!

/Extended Resource 资源使用率,也就是节点实际负载 节点 CPU/Memory/Extended Resource 资源分配率,kubernetes Node 中Request 分配率...,kubernetes 调度器是基于 PodRequest 来调度,只有当节点剩余足够 Request 资源时,才能将 Pod 调度到节点运行 3.业务 Pod 组件负载 业务 Pod CPU...通过扩展资源封装节点可超卖 CPU 资源,新建 Pod 声明 CPU Request/Limit 改成对应扩展资源,Pod Qos 策略必须 Best Effort。...与一体弹性伸缩组件,主要目标是减少申请资源和实际资源使用之间差异,同时最大程度地降低因 Memory 不足(OOM)错误CPU 高负载导致其性能和可用性下降。...(比如扩容稳定窗口180秒、缩容随机12-24h、扩容 CPU/Memory 阈值90、缩容30%、HPA最小最大副本数等)。

1.3K20

通过自定义prometheus数据实现k8s hpa

Metrics Server 从每个节点 Kubelet 公开 Summary API 中采集指标信息。...在Kubernetes v1.1中首次引入了hpa特性,自那时起已经有了很大发展。 hpa第一个版本基于观察到CPU利用率,后续版本支持基于内存使用。...Kubernetes 1.7引入了聚合层,允许第三方应用程序通过注册API附加组件来扩展Kubernetes API。...hpa 实现了一个控制环,可以周期性从资源指标API查询特定应用CPU/MEM信息。 ? 实战 以下是关于Kubernetes 1.9或更高版本HPA v2配置分步指南。...如果在v1版本HPA中,您将需要Heapster提供CPU和内存指标,在HPA v2和Kubernetes 1.8中, 只有度量服务器是需要,而水平-pod-autoscaler-use-rest

3.7K20

k8s中pod自动扩缩容

HPA说明 Kubernetes从1.1版本开始, 新增了名为Horizontal Pod Autoscaler(HPA控制器, 用于实现基于CPU使用率进行自动Pod扩缩容功能。...HPA控制器基于Masterkube-controller-manager服务启动参数–horizontal-pod-autoscaler-sync-period定义探测周期(默认值15s) ,...Kubernetes在早期版本中, 只能基于PodCPU使用率进行自动扩缩容操作, 关于CPU使用率数据来源于Heapster组件。...HPA工作原理 Kubernetes某个Metrics Server(Heapster或自定义Metrics Server) 持续采集所有Pod副本指标数据。...URL Kubernetes从1.11版本开始, 弃用基于Heapster组件完成PodCPU使用率采集机制, 全面转向基于Metrics Server完成数据采集。

3.5K31

智能 Request 推荐,K8s 资源利用率提升 252%

王孝威,FinOps 认证从业者,腾讯云容器服务产品经理,热衷于客户提供高效 Kubernetes 使用方式,客户极致降本增效服务。...可以理解成用户在云花了一百元,实际 90多元都被浪费掉了。 如何设置 Request? 提升资源利用率有很多种方法,详见 Kubernetes 降本增效标准指南| 资源利用率提升工具大全。...例如初始设置 CPU Request 数值 1000m,Limit 2000m,Request 与 Limit 之比为 1:2。...若新推荐 CPU Request 数值 500m,则会推荐 Limit 1000m。 更多关于 Request 智能推荐使用请参考:Request 智能推荐产品文档[2]。...现阶段,HPAKubernetes 领域最常用弹性工具,虽然 HPA 可以一定程度上解决周期性业务流量资源使用弹性问题,但是 HPA 是有滞后性

3.4K40

容器计算资源管理&网络QoS实现---Openshift3.9学习系列第四篇

其中: CPU是以millicores单位进行分配,即一个CPU core 1/1000运算能力。 内存分配以字节单位,也可以设置成 以Gi, Mi, Ki单位。...二、几个参数 CPU Request pod中每个容器都可以指定它在节点请求CPU量;同时Scheduler使用CPU请求来查找适合容器节点 CPU Request表示容器可能消耗最小CPU量...如果节点没有CPU争用,它可以使用所有可用CPU 2.如果节点存在CPU争用,则CPU Request会在系统所有容器中提供相对权重,以确定容器可以使用多少CPU时间 CPU Limits...,cpu:100表示request,则cpuLimitRequestRatio 5.此比率必须小于或等于maxLimitRequestRatio。...HPA基于CPU利用率。 选定一个pod,对其设置CPUHPA: ? ? 由于CPU较为空闲利用率低于20%,在设置HPA生效以后,pod自动缩减: ? 接下来,通过Curl循环对pod加压。

1.5K30

K8s降本增效之成本优化篇

在配置Kubernetes集群时,可以合理配置资源request和limits,开发人员通过设置配置文件中request和limits来控制每个pod中容器CPU和内存资源数量。...为了帮助降低Kubernetes集群成本,需要合理设置资源request和limits并维持应用性能。...Kubernetes提供了Pod vpa工具,VPA 使用户无需 pod 中容器设置资源请求。配置后,它将根据资源(cpu 与内存)使用情况自动设置 requests。...在对 pod 调度过程中,使得每个 pod 都可以使用适当资源量从而分配到适合节点,从而提升集群资源利用率,同时可以最大限度地降低容器内存或 CPU 不足风险。...在 Azure Kubernetes Service(AKS)中,默认限制是每个节点 30 个 Pod,但可以增加到 250 个。

99640

腾讯自研业务云:优化Kubernetes集群负载技术方案探讨

Author: xidianwangtao@gmail.com 摘要:Kubernetes资源编排调度使用是静态调度,将Pod Request Resource与Node Allocatable Resource...集群资源构成 以cpu资源例,一个大规模Kubernetes集群资源组成结构大致如下: [tbhqhxqnu2.jpeg] 由以下几部分组成: 每个节点预留资源,对应kubeletsystem-reserved...这些资源碎片分散在集群中各个节点,以1c1g, 2c2g, 3cxg为主,平台提供用户选择容器规格都很难match到这些碎片,经常存在这这种情况:要调度某个Pod时,发现某个节点cpu足够,但是...何时通过压缩比去调整Pod Spec中Request Resource?Kubernetes发展到现阶段,直接改Kubernetes代码是最愚蠢方式,我们要充分利用Kubernetes扩展方式。...超卖比例从大往小调低时,存在节点 Sum(pods' request resource) > node's allocatable情况出现,这里是否有风险,该如何处理?

6.2K576

kubernetes 降本增效标准指南| 资源利用率提升工具大全

王孝威,腾讯云容器产品经理,热衷于客户提供高效 Kubernetes 使用方式,客户极致降本增效服务。...以 CPU 例,下图是某个实际业务场景下容器资源预留(Request)和实际使用量(CPU_Usage)关系图:资源预留远大于实际使用量,两者之间差值所对应资源不能被其他负载使用,因此 Request...,不同业务通常资源使用情况不同,不同命名空间设置不同 Request/Limit 可以提升资源利用率 限制容器对资源使用的上下限,保证容器正常运行情况下,限制其请求过多资源 TKE Limit...2.2.1 节点亲和性 倘若你某个业务是 CPU 密集型,不小心被 Kubernetes 调度器调度到内存密集型节点,导致内存密集型 CPU 被占满,但内存几乎没怎么用,会造成较大资源浪费。...如果你能为节点设置一个标记,表明这是一个 CPU 密集型节点,然后在创建业务负载时也设置一个标记,表明这个负载是一个 CPU 密集型负载,Kubernetes 调度器会将这个负载调度到 CPU 密集型节点

2.8K43

Kubernetes 微服务最佳实践

- HPA Kubernetes 官方主要支持基于 Pod CPU 伸缩,这是应用最为广泛伸缩指标,需要部署 metrics-server 才可使用。...HPA 默认使用 Pod 的当前指标进行计算,以 CPU 使用率例,其计算公式: 「Pod CPU 使用率」= 100% * 「所有 Container CPU 用量之和」/「所有 Container...HPA 扩缩容过于敏感,导致 Pod 数量震荡 通常来讲,K8s 绝大部分负载都应该选择使用 CPU 进行扩缩容。...中编码某些参数,可能会产生意料之外效果,甚至直接把控制面搞崩… 比如这个 issue: Nil pointer dereference in KCM after v1 HPA patch request...比如 HPA CPU 目标值 60%,就可以考虑设置 PDB minAvailable=65%,保证至少有 65% Pod 可用。

1K30
领券