根据官方人员的说明,在目前最新的2.2.2版本中,还没有在UI界面当中支持hpa的功能(可能在下个版本中支持),所以做实验需要通过命令行来手动操作一下。
要知道,想要在k8s当中完成hpa的实验,需要metrics
的支持,不过rancher部署完成之后,就已经集成了。
$ kubectl get pod -n kube-system |grep metrics
metrics-server-58bd5dd8d7-pr6nh 1/1 Running 0 6h50m
于是可以直接部署进行实验。
1,部署。
首先部署一个可供试验的服务。
kubectl run nginxtest --image=nginx:latest --requests=cpu=200m --expose --port=80
然后对如上服务添加hpa规则。
kubectl autoscale deployment nginxtest --cpu-percent=10 --min=1 --max=10
--cpu-percent
:表示使用率达到上边设定的(200m)的百分之十。--min
:表示一分钟之内。--max
:表示最多增加到10个副本。
如上两条命令可以直接在web界面,找到集群
,选择执行kubectl命令
:
部署完成之后,可以看一看应用部署的情况。
2,暴露服务。
因为上边是手动创建的一个deployment,外部无法访问,所以现在手动在集群的服务发现
当中添加一下映射。
保存之后,就可以直接通过随机分配的端口进行访问了。
$ curl 192.168.111.3:30392
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
3,验证效果。
在服务器上执行如下命令创造一些访问:
while true; do curl -s http://192.168.111.3:30392; done
这个时候可以到web界面看看使用占比情况:
那么不用动,等待一会儿,k8s就会自动给应用增加副本,从而让负载使用占比降下来,而后我在增加两台机器进行访问增压,那么负载再次增高,应该就会再一次增加副本,从而让负载保持在一个之前预期的一个范围当中。
过了一会儿看看果然如此:
可以清晰看到整个负载的动向,也可以看到副本从1个增加到了2个,再到4个,再到7个。
然后再去看看应用是否启动了多个副本以应对这种突然增高的负载:
可以看到,副本已经增加到了7个,那么这个功能的试验,到这里也就结束了,真的是非常犀利,非常方便,与此同时,也非常期待rancher的下一个版本能够快点到来,争取早点完美支持这种自动的动态调整副本功能。

扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~