Azure Kubernetes 水平自动扩充Pod,新手必须掌握kubernetes架构Azure Kubernetes水平并自动扩展Pod当我们将应用部署到AKS以pod的形式提供外部服务时,为了保证用户能够获得良好的体验,我们需要注意以下两种情况:服务不可用,因为POD未知挂断。当大量用户访问时,Pod能否在高负......
当我们将应用部署到AKS以pod的形式提供外部服务时,为了保证用户能够获得良好的体验,我们需要注意以下两种情况:
服务不可用,因为POD未知挂断。
当大量用户访问时,Pod能否在高负载下支持我们的应用?
对于Pod的高可用性,我们可以使用AKS的部署控制器来保证Pod能够持续提供外部服务。但是,当面对大量的用户访问时,我们需要扩展我们的资源来满足业务需求。在上一篇文章中,介绍了您手动扩展pods来满足业务扩展需求,但是相信大家都已经意识到,如果我们手动监控Pods,手动调整副本,那么这个工作量无疑是巨大的,但是kubernetes已经有了相应的机制来应对。这就是我们今天要给大家介绍的水平自动扩展POD(HPA)HPA的工作流程,全称水平POD自动缩放控制器。
HPA的工作流程如下:
创建HPA资源对象,关联部署等相应资源,设置目标CPU利用率阈值、最大最小副本数。前提:pod必须设置资源限制,参数请求才会让HPA工作。
每隔15秒(可以通过设置controller manager的–horizontalpodauto scalersyncperiod参数来设置,默认为15秒),HPA控制器通过观察度量值来获取资源使用信息。
HPA控制器将获取的资源使用信息与HPA设置值进行比较,并计算要调整的副本数量。
根据计算结果调整副本数量,使单个POD的CPU利用率尽可能接近期望值,但无法兼顾设定的最大值和最小值。
上述2、3、4个周期
说了这么多,我们来看看如何配置HPA:在配置HPA之前,我们需要先了解节点的配置检查并配置资源限制使用kubectl get nodes命令检查节点信息(节点名)并使用kubectl describe nodes NODENAME命令确认节点资源配置状态。因为之前没有配置资源quata,所以需要先设置资源限制:打开之前创建的yaml文件,修改资源配置,其中CPU配置容器只使用一个CPU单元,请求限制使用0.5个CPU单元;修改之后,使用kubectl apply f FILENAME来重新部署相应的POD。
设置水平自动扩展HPA使用命令ku bectl autoscale deployment nginxCPUpercent = 1min = 1max = 10将自动扩展设置为1%,并将最小副本数设置为1,最大副本数设置为10。
配置完成后,我们使用webbench对我们部署的NGINX网站进行压力测试:使用命令kubectl get hpa观察自动水平扩展的状态。请注意,Target中有两个数字。是,当前/目标CPU利用率。使用命令kubectl get deployment观察部署的数量是否增加了。使用命令kubectl get pod来观察pod的数量是否增加了,并注意状态。如果为1,则表示水平自动扩展(hpa)设置成功且有效。
清除资源测试完成后,我们可以使用kubect delete f FILENAME删除对应的部署资源:使用kubectl delete hpa nginx删除hpa资源:
特别声明:以上文章内容仅代表作者本人观点,不代表ESG跨境电商观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与ESG跨境电商联系。
二维码加载中...
使用微信扫一扫登录
使用账号密码登录
平台顾问
微信扫一扫
马上联系在线顾问
小程序
ESG跨境小程序
手机入驻更便捷
返回顶部