Rancher-v2.3.5的hpa实验

在Rancher 2.3中,已经集成了HPA功能,可以在Rancher中通过UI创建HPA,所以下面的实验会通过UI来创建HPA。

一、部署

1、部署测试应用

部署一个用于测试rancher的hpa的应用,这里选择部署一个nginx应用。

在rancher中,直接在UI中部署一个工作负载即可,非常的简单。但是我这里就用命令行来部署一个nginx的hpa测试服务(很久没用命令行了)。

kubectl run nginxhpa --image=nginx:latest --requests=cpu=200m --expose --port=80

命令可以直接在UI上执行:找到集群,点击右上角的执行kubectl命令行
在这里插入图片描述
可以看到nginxhpa应用已经成功部署。

2、创建hpa

创建hpa的命令为:

kubectl autoscale deployment nginxhpa --cpu-percent=10 --min=1 --max=10

--cpu-percent:表示使用率达到上面设定的(200m)的10%
--min:表示最少的pod数量
--max:表示最大的pod数量
上面已经说过,在Rancher 2.3中,已经集成了HPA功能,我这里不用上面的命令创建,直接用UI创建。
在这里插入图片描述

点击创建,稍等一会,一个HPA就创建好了。
在这里插入图片描述

二、暴露服务

因为上面的工作负载不是由Rancher或Rancher API创建的,Rancher不会自动为端口映射创建相关的服务。所以我们需要在服务发现中添加DNS记录。
在这里插入图片描述
创建之后,就可以看到nginxhpa的80端口被暴露在主机的31009端口(随机分配的端口)。
在这里插入图片描述

三、验证

在服务器上执行下面的循环语句来访问nginx服务,你没看错,这是个死循环,暂时想不到更好的办法来让nginx的cpu上去了。

while true; do curl -s http://192.168.0.51:31009; done

这个时候可以通过UI界面来看一下hpa的情况:
在这里插入图片描述
等待一段时间,hpa就会自动给nginx应用增加副本数量。如果一个客户端的访问产生的负载不够,可以在多台机器上进行访问,让负载升高,这样副本的数量就会增加,从而让负载保持在之前设置的一个范围中。

我的压测过程如下:

先是用一个客户端进行访问,然后用两个客户端进行访问,最后两个客户端都停止访问,整个过程的hpa控制的副本数量如下:
在这里插入图片描述
和预期的一样,当我用1个客户端压测的时候,副本数来到了4个,用2个客户端压测的时候,副本数来到了7个,停止压测之后,副本数就恢复为1个了。HPA完美的实现了pod的水平自动伸缩。

下面是副本数达到7个时候的工作负载nginxhpa的截图。
在这里插入图片描述

参考文章:
http://www.eryajf.net/2725.html
https://blog.csdn.net/RancherLabs/article/details/102948530

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章