当前位置:首页 > Web开发 > 正文

设定目标CPU使用率阈值

2024-03-31 Web开发

标签:

当我们将应用部署到AKS中以pod的形式对外供给处事时,,为了确保用户可以获得良好的使用体验,我们需要存眷如下两种情况:

POD因为不明原有挂失,导致处事不成用

当呈现大量用户访谒时,Pod在高负荷的情况下能否支撑我们的应用

对付Pod的高可用性我们可以使用AKS的deployment控制器来确保Pod可以连续对外供给处事,但是对付面临大量用户访谒时,我们就需要扩展我们的资源来满足业务需求。
前面的文章中给大家介绍了手动扩展pod来满足业务的扩展需求,但是相信大家都已经意识到了如果我们人工监控pods,人工进行调解副本那么这个事情量无疑是巨大的,但kubernetes已经有了相应的机制来应对了。这就是我们今天要为大家介绍的程度自动扩充POD(HPA)
HPA全称Horizontal Pod Autoscaler控制器事情流程

HPA的事情流程如下:

创建HPA资源东西,关联对应资源例如Deployment,设定方针CPU使用率阈值,最大,最小replica数量。
前提:pod必然要设置资源限制,参数request,HPA才会事情。

HPA控制器每隔15秒钟(可以通过设置controller manager的–horizontal-pod-autoscaler-sync-period参数设定,默认15s)通过不雅观测metrics值获取资源使用信息

HPA控制器将获取资源使用信息与HPA设定值进行比拟,计算出需要调解的副本数量

按照计算功效调解副本数量,使得单个POD的CPU使用率尽量迫近期望值,但不能赐顾帮衬设定的最大,最小值。

以上2,3,4周期循环

说了这么多,下面我们来看下如何配置HPA:
在配置HPA之前,我们需要先了解Node节点的配置情况
查抄与配置resource limit
使用kubectl get nodes命令查抄node信息(node名称)

使用命令 kubectl describe nodes NODE_NAME 确认 Node 资源配置的状态, 因为我们之前没有配置Resource quata,因此我们需要先设定好 Resource 限制:

技术图片


打开我们之前创建的yaml文件,改削 Resources 配置, 此中 CPU 配置 Container 只使用 1 个 CPU 单元, Request 限制使用 0.5 个 CPU 单元:

技术图片


改削完成以后使用kubectl apply -f FILE_NAME从头部署对应POD

设置程度自动扩充HPA
使用命令 kubectl autoscale deployment nginx--cpu-percent=1 --min=1 --max=10 将自动扩充设定为 CPU-percent 设定为1%, 并且将 minimum replica 数设为 1, maximum replica 数设为 10.

配置完成以后我们使用webbench来对我们部署的NGINX网站进行压力测试:

技术图片


使用命令 kubectl get hpa 不雅察看程度自动扩充状态, 请注意 Target 中有两个数字, 是 Current/Target CPU 使用率

使用命令 kubectl get deployment 不雅察看 deployment 数量有无增加

使用命令 kubectl get pod 不雅察看 pod 数量有无增加, 并且注意状态, 如果 > 1 暗示程度自动扩充 (hpa) 已经告成设置且生效了

技术图片

断根资源
测试完成以后,我们可以使用kubect delete -f FILE_NAME 来删除对应的deployment资源:

技术图片


使用kubectl delete hpa nginx来删除hpa资源:

Azure Kubernetes 程度自动扩充Pod

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31905.html