|NO.Z.00167|——————————|CloudNative|——|KuberNetes&服务发布.V18|——|HPA.v01|资源查看|
一、HPA概述
### --- 什么是HPA
~~~ Horizontal Pod Autoscaler:Pod的水平自动伸缩器。
~~~ 观察Pod的CPU、内存使用率自动扩展或缩容Pod的数量。
~~~ 不适用于无法缩放的对象,比如DaemonSet。一般都是用在Deployment上的。
~~~ 一般都是应对突发流量的,可以缓解前面应用的突发流量,
### --- HPA只支持CPU、内存扩缩容;
~~~ # 内存:
~~~ 一般不会使用内存去扩容;内存它升高后不会往下降。
~~~ 比如java语言写的程序它的内存会一直往上升,到了80%或者90%以后,
~~~ 它的Pod就会扩成好几个,扩成好几个后因为它的内存不释放,所以它的Pod数量也不会去减少。
~~~ # CPU:
~~~ 一般当我们都是用CPU的方式去扩缩容,因为CPU是动态的。
~~~ # 自定义指标的扩缩容:
~~~ 根据业务应用暴露的接口去扩缩容;比如有一个NodeJS应用,暴露了一个接口,
~~~ 这个接口可以反映出当前的连接数是多少,比如当前的连接数是100,
~~~ 平常是100或者200的连接数;我们就可以自定义一个指标,连接数达到1000,
~~~ 就给他扩容,把这流量分开;这个需要和开发协调暴露这个接口。
二、内存CPU资源查看
### --- 需要安装metrics-server,才能通过kube-system去查看每个pod所使用的CPU和内存大小。
[root@k8s-master01 ~]# kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
metrics-server-595f65d8d5-slhtd 1/1 Running 15 13d
You have new mail in /var/spool/mail/root
### --- 和deploy的requests的值是一样的。
~~~ 必须定义 Requests参数,必须安装metrics-server
[root@k8s-master01 ~]# kubectl top po -n kube-system
NAME CPU(cores) MEMORY(bytes)
calico-kube-controllers-5f6d4b864b-6clrl 6m 29Mi
calico-node-6hbtl 59m 59Mi
calico-node-77c2f 34m 53Mi
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了