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调度状态及资源使用情况对集群的节点进行自动扩容缩容。

相关推荐
无足鸟ICT34 分钟前
【RHCA+】patch命令(更新补丁)
linux·运维·服务器
zhengqweasd36 分钟前
Linux 软中断原理:网卡报文是怎么抢占 CPU 的
linux·运维·网络
ESDWAN39 分钟前
为什么跨境网络白天正常、晚上卡顿?如何分析时段性?
linux·网络·php·网络运维
X1A0RAN1 小时前
Linux nohup 命令完全指南
linux·运维·服务器
对讲机数码科普1 小时前
业余无线电野外中继寒地故障排查|东北林区 VHF/UHF 台站四季射频环境适配方案
运维·网络
Shadow(⊙o⊙)1 小时前
仿muduo实现高并发服务器——读写缓冲区Buffer.hpp
运维·服务器
黄焖鸡能干四碗1 小时前
大数据平台安全防护策略方案(PPT)
大数据·运维·网络·安全·web安全·制造
C++ 老炮儿的技术栈1 小时前
char 造成的数据溢出
linux·服务器·c语言·c++·算法·c
qetfw1 小时前
Bash 内置与外部命令:type、command 与 builtin 验证
linux·开发语言·bash
虚无的纽扣1 小时前
【Linux】信号(上):一个进程是怎么“被通知”的
linux·运维·驱动开发