来自chatGPT
Kubernetes中的HPA(Horizontal Pod Autoscaler)可以根据当前负载情况自动扩展Pod数量。在HPA配置中,有一个可选字段behavior,它可以用于指定HPA策略的特定行为。behavior字段包括以下两个子字段:

scaleDown:用于指定缩容行为的参数。如果在一段时间内,HPA检测到当前Pod剩余的CPU或内存利用率低于下面两个条件之一,那么就会自动缩容:
utilizationThreshold:当所有Pod所需的CPU或内存利用率低于这个阈值时,进行缩容。
stabilizationWindowSeconds:当在指定的时间窗口内(默认为300秒)进行缩容时,如果在一次调整之前,Pod的利用率在一定范围内保持稳定(默认为5),那么就不会进行缩容。
scaleUp:用于指定扩容行为的参数。如果在一段时间内,HPA检测到当前Pod剩余的CPU或内存利用率高于utilizationThreshold设置的阈值,那么就会自动扩容。
behavior字段可根据实际需要进行配置,以控制HPA策略的行为方式。

例如,以下是一个HPA配置示例,其中指定了缩容行为的behavior参数:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:name: my-app
spec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: my-deploymentminReplicas: 2maxReplicas: 10metrics:- type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 50behavior:scaleDown:stabilizationWindowSeconds: 300policies:- type: Podsvalue: 4periodSeconds: 60scaleUp:policies:- type: Podsvalue: 4periodSeconds: 60

periodSeconds 表示在过去的多长时间内要求策略值为真。 第一个策略(Pods)允许在一分钟内最多缩容 4 个副本。第二个策略(Percent) 允许在一分钟内最多缩容当前副本个数的百分之十。假如缩容前的pod数量是80个,目标要缩减到10个,那么,由于默认情况下会选择容许更大程度作出变更的策略, 那么在第一步中将减少 8 个副本。 在下一轮迭代中,当副本的数量为 72 时,10% 的 Pod 数为 7.2,但是这个数字向上取整为 8。 在 autoscaler 控制器的每个循环中,将根据当前副本的数量重新计算要更改的 Pod 数量。 当副本数量低于 40 时,应用第一个策略(Pods),一次减少 4 个副本。

在这个HPA示例中,有以下属性:

apiVersion:定义使用的Kubernetes API版本。
kind:定义资源的类型,此处定义为HorizontalPodAutoscaler。
metadata:定义资源的元数据,如名称、命名空间、标签等。
spec.scaleTargetRef:定义要自动扩展Pod的目标资源,例如Deployment或StatefulSet。
spec.minReplicas:定义Pod的最小数量,这是Auto Scaling不能缩小的数量。
spec.maxReplicas:定义Pod的最大数量,这是Auto Scaling不能扩展的数量。
spec.metrics:定义用于自动扩展的度量指标,此处使用CPU利用率作为度量指标。
spec.behavior:定义HPA的缩放行为。
scaleDown.stabilizationWindowSeconds:当检测到可以缩小Pod数量时,等待调整之前Pod的利用率保持稳定的时间。
scaleDown.policies:指定要执行的缩小Pod数量的策略。这在HPA检测到CPU利用率低于目标利用率时启动。
type:指定策略的类型。在此处, type被设置为Pods,意味着对Pod级别执行策略。另一种类型是Percent,在默认情况下是对所有Pod的均值执行策略。
value:指定要移除的Pod数量。
periodSeconds:指定在每个执行策略之间等待多长时间。
scaleUp.policies:指定要执行的扩展Pod数量的策略。这在HPA检测到CPU利用率高于目标利用率时启动。
type、value和periodSeconds均与scaleDown.policies相同。

这个HPA示例定义了一个名为my-app的HPA,并指定了如果CPU利用率低于50%时,将调整Pod数量,以便缩小4个Pod。它还指定了等待5分钟,以便在调整之前Pod的利用率保持稳定。如果CPU利用率高于50%,则该HPA将在30秒内增加2个Pod。也就是说,如果CPU利用率超过50%,HPA会自动为该Deployment或StatefulSet提供更多的Pod,以满足更高的流量需求。

kubernets HPA相关推荐

  1. Kubernetes基于Metrics Server的HPA

    Kubernetes基于Metrics Server的HPA [TOC] 1. 环境说明和相关介绍 我的kubernetes环境: kubeadm安装的kubernetes1.11 Horizonta ...

  2. 十问 | 关于Service Mesh 和Kubernets的最前沿思考

    小蚂蚁说: 在7月6日ArchSummit全球架构师峰会2018深圳站上,蚂蚁金服平台数据技术部的杨冰.Service Mesh布道师敖小剑.蚂蚁金服技术专家毛小云和来自阿里大文娱UC基础部的曾彬,四 ...

  3. Kubernetes 弹性伸缩全场景解析(三) - HPA 实践手册

    在上一篇文章中,给大家介绍和剖析了 HPA 的实现原理以及演进的思路与历程.本文我们将会为大家讲解如何使用 HPA 以及一些需要注意的细节. autoscaling/v1 实践 v1 的模板可能是大家 ...

  4. Kubernetes 弹性伸缩全场景解读(二)- HPA 的原理与演进

    前言 在上一篇文章 Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局中,我们介绍了在 Kubernetes 在处理弹性伸缩时的设计理念以及相关组件的布局,在今天这篇文章中,会为大家 ...

  5. 【网址收藏】k8s HPA自动伸缩异常:failed to get cpu utilization: missing request

    参考链接: Kubernetes:HPA 详解-基于 CPU.内存和自定义指标自动扩缩容

  6. K8S控制器类型:RC/RS、Deployment、DaemonSet、Job和CronJob、StatefulSet、HPA

    控制器类型 RC/RS 命令式编程就类似于面向过程 声明式编程就类似于面向对象 sql语句就是典型的声明式编程语言 Deployment Deployment是通过RS来创建和管理pod的 Daemo ...

  7. asp.net core程序在k8s中基于rabbitmq队列消息数的HPA实践!

    背景 最近一段时间,陆陆续续的把手里头项目都迁移到了k8s中,期间遇到很多的坑,并且也学到了许多k8s的知识(从0-1),大家都知道k8s中的一大特性是自动扩容,对此结合自己的业务发现很是有" ...

  8. php 生存分析,HPA数据库08.做生存分析

    生信论文的套路 ONCOMINE从全景.亚型两个维度做表达差异分析: 临床标本从蛋白水平确认(或HPA数据库),很重要: Kaplan-Meier Plotter从临床意义的角度阐明其重要性: cBi ...

  9. OpenShift 4 - 基于Memory的HPA

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 安装并发压力工具 $ yum install httpd 部署测试应用和HPA $ o ...

最新文章

  1. python括号配对问题_使用Python的栈实现括号匹配算法
  2. 集中化监控SQL Server数据库
  3. python123程序作业答案说句心里话_作业 -- 几道简单的Python题
  4. IOS-C语言第1天
  5. 无关技术,关于香港对我的影响
  6. c语言深入浅出(一)strcpy和memcpy的区别
  7. 极兔正式入股百世快递
  8. Eclipse-插件的安装之link文件方法
  9. Excel自动转曲线图的时PHP,excel表格数据转为曲线-如何将EXCEL表中的数据生成曲线...
  10. php 验证是否是xml,php判断str字符串是否是xml格式数据
  11. (第24讲)java小程序——Applet
  12. android 基站信号测试软件,基站信号监测app
  13. Anaconda修改默认浏览器
  14. 计算机总是提醒更新,电脑关机的时候总是提示系统正在更新怎么办?
  15. Your app declares support for audio in the UIBackgroundModes key in your Info.plist 错误
  16. 如何登录MySQL数据库
  17. 在高分辨率屏幕上用VMware运行ubuntu显示过小的问题
  18. “ IMY”是什么意思,如何使用?
  19. Ubuntu上让Firefox使用Chrome最新版PepperFlash插件
  20. Objective-C语法之Category的使用

热门文章

  1. ESP32 Arduino (六)TFT屏幕连接无线局域网投屏
  2. [笔记]光照系统3环境光、反射光
  3. UMeng统计分析Android集成文档
  4. 赖特 因果分析_那个时候,赖特会把你放在查尔斯·达尔文的鞋子上
  5. 【教程】PyG入门,初步尝试运行第一行GNN代码
  6. Python中的reduce()函数----可求积求和
  7. 安装php还要安装什么软件吗,PHP的安装方法及软件
  8. java火焰纹章攻略女神之剑_火焰纹章风花雪月图文攻略 主线流程+角色培养+转职系统 (33) _白云之章·女神的行踪②_游侠网...
  9. 用Python统计居民消费支出情况
  10. RGB图像是3通道才有颜色,1通道只能是灰色