k8s-弹性伸缩

一、HPA工作机制

HPA(Horizontal Pod Autoscaler)是用来控制Pod水平伸缩的控制器,HPA周期性检查Pod的度量数据,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment)的replicas字段。

HPA:根据度量值计算Pod的数量。可以配置单个和多个度量指标,配置单个度量指标时,只需要对Pod的当前度量数据求和,除以期望目标值,然后向上取整,就能得到期望的副本数。例如有一个Deployment控制有3个Pod,每个Pod的CPU使用率是70%、50%、90%,而HPA中配置的期望值是50%,计算期望副本数=(70 + 50 + 90)/50 = 4.2,向上取整得到5,即期望副本数就是5。

二、使用示例

创建一个HPA,期望CPU的利用率为70%,副本数的范围是1-10。

创建后HPA查看。

可以看到,TARGETS的期望值是70%,而实际是0%,这就意味着HPA会做出缩容动作,期望副本数量=(0+0+0+0)/70=0,但是由于最小副本数为1,所以Pod数量会调整为1。等待一段时间,可以看到Pod数量变为1。

查看HPA详情,可以在Events里面看到这样一条记录。这表示HPA在21秒前成功的执行了缩容动作,新的Pod数量为1,原因是所有度量数量都比目标值低。

复制代码
$ kubectl describe hpa scale


如果再查看Deployment的详情,可以在Events里面看到这样一条记录。这表示Deployment的副本数量被设置为1了,跟HPA中看到的一致。
$ kubectl describe deploy nginx-deployment

三、Cluster AutoScaler

Cluster Autoscaler是Kubernetes提供的集群节点弹性伸缩组件,根据Pod调度状态及资源使用情况对集群的节点进行自动扩容缩容。

相关推荐
别骂我h6 分钟前
部署KVM虚拟化平台
linux·运维·服务器
繢鴻8 分钟前
紧急救援!Ubuntu崩溃修复大赛
linux·服务器·ubuntu
showmethetime30 分钟前
优化nginx参数(基本通用参数)
运维·nginx
老六ip加速器37 分钟前
获取ip地址安全吗?如何获取静态ip地址隔离ip
运维·网络·智能路由器
净心净意9 小时前
浅谈DaemonSet
运维·jenkins
Apex Predator15 小时前
jenkins流水线打包vue无权限
运维·jenkins
hujun861019 小时前
Ubuntu安装无线网卡
linux
Johny_Zhao19 小时前
CentOS Stream 8 高可用 Kuboard 部署方案
linux·网络·python·网络安全·docker·信息安全·kubernetes·云计算·shell·yum源·系统运维·kuboard
卖猪肉的痴汉21 小时前
1.1 Linux 编译FFmpeg 4.4.1
linux·ffmpeg
哲讯智能科技21 小时前
苏州SAP代理商:哲讯科技助力企业数字化转型
大数据·运维·人工智能