当前位置: 首页 > news >正文

Kubernetes v1.33:HPA 可配置容差

水平 Pod 自动扩缩 是 Kubernetes 中一个众所周知的特性,它允许你的工作负载根据资源利用率自动增减副本数量。

假设你在 Kubernetes 集群中运行了一个具有 50 个副本的 Web 应用程序。 你配置了 Horizontal Pod Autoscaler (HPA)根据 CPU 利用率进行扩缩, 目标利用率 75%。现在,假设所有副本的当前 CPU 利用率为 90%, 这高于预期的 75%。HPA 将使用以下公式计算所需的副本数量:

desiredReplicas=ceil⌈currentReplicas×currentMetricValuedesiredMetricValue⌉desiredReplicas=ceilcurrentReplicas×desiredMetricValuecurrentMetricValue

在此示例中:

50×(90/75)=6050×(90/75)=60

因此,HPA 将增加副本数量从 50 个提高到 60 个,以减少每个 Pod 的负载。 同样,如果 CPU 利用率降至 75% 以下,HPA 会相应地减少副本数量。 

为了避免在指标发生小波动时创建或删除副本, Kubernetes 应用了一种迟滞形式:仅当当前和期望的指标值差异超过 10% 时, 才改变副本数量。在上面的例子中,因为当前和期望的指标值比率是 90/7590/75, 即超出目标 20%,超过了 10% 的容差,所以扩容操作将继续进行。

这个 10% 的默认容差是集群范围的;在旧版本的 Kubernetes 中, 它无法进行微调。对于大多数使用场景来说,这是一个合适的值, 但对于大型部署而言则过于粗糙,因为 10% 的容差代表着数十个 Pod。 因此,社区长期以来要求能够调整这个值。

在 Kubernetes v1.33 中,现在这已成为可能。

我如何使用它?

在你的 Kubernetes v1.33 集群中启用 HPAConfigurableTolerance [特性门控][/zh-cn/docs/reference/command-line-tools-reference/feature-gates/]后, 你可以为你的 HorizontalPodAutoscaler 对象添加期望的容差。

容差出现在 spec.behavior.scaleDown 和 spec.behavior.scaleUp 字段下,因此对于扩容和缩容可以有不同的设置。一个典型的用法是在扩容时指定一个小的容差(以快速响应峰值), 而在缩容时指定较大的容差(以避免因小的指标波动而过快地添加或移除副本)。

例如,一个在缩容时有 5% 容差,在扩容时没有容差的 HPA 配置如下所示:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:name: my-app
spec:...behavior:scaleDown:tolerance: 0.05scaleUp:tolerance: 0
 
http://www.sczhlp.com/news/5223/

相关文章:

  • Java学习:Java与C++数组初始化全对比
  • Revit高版本载入低版本族库,软件卡死 - Andy
  • ​​Linux CentOS 命名空间(Namespace)​​ 的应用场景及命令详解
  • 洛谷P1364 医院设置(dfs\树形dp\树重心)
  • Modbus转Profinet协议网关与微型空气质量监测系统
  • VLAN 0 1 4095
  • [CTF Reverse] 初见SMC
  • 深入指南:在SCSS中高效使用@font-face引入自定义字体
  • 题解:qoj9564 Hey, Have You Seen My Kangaroo?
  • BT137-800-ASEMI工业自动化BT137-800
  • 8.4
  • Java数组
  • appium安装文档
  • 正之和软件
  • Linux CentOS 系统中 X11(X Window System)​​ 的详细解析
  • 使用OpenAI文本转语音(Text to Speech)详解
  • 深入解析:jmeter--While控制器--循环直到接口响应符合条件
  • Git基本使用
  • 又是周一,又要上班
  • 杂交瘤细胞构建|单克隆抗体筛选|高效抗体制备
  • 生成式AI实现多模态信息检索新突破
  • 【自学嵌入式:51单片机】LCD1602
  • Java编程练习:洗牌
  • 猿大师中间件:Chrome网页内嵌Windows PC版微信桌面EXE应用程序
  • 实用指南:Cost-Effective and Scalable: A Smarter Choice for RISC-V Development
  • 洛谷题单指南-状态压缩动态规划-P1441 砝码称重
  • linux文件系统镜像导出位docker镜像
  • vue-element-admin 学习笔记
  • 通过Modbus RTU转Profinet网关实现SB150变频器与PLC的集成配置
  • 在 Ubuntu 上,通过 systemctl 来操作自己的程序