基于Rancher-2-2-2的hpa实验
文章发布较早,内容可能过时,阅读注意甄别。
根据官方人员的说明,在目前最新的 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
2
2
于是可以直接部署进行实验。
# 1,部署。
首先部署一个可供试验的服务。
kubectl run nginxtest --image=nginx:latest --requests=cpu=200m --expose --port=80
1
然后对如上服务添加 hpa 规则。
kubectl autoscale deployment nginxtest --cpu-percent=10 --min=1 --max=10
1
--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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 3,验证效果。
在服务器上执行如下命令创造一些访问:
while true; do curl -s http://192.168.111.3:30392; done
1
这个时候可以到 web 界面看看使用占比情况:
那么不用动,等待一会儿,k8s 就会自动给应用增加副本,从而让负载使用占比降下来,而后我在增加两台机器进行访问增压,那么负载再次增高,应该就会再一次增加副本,从而让负载保持在一个之前预期的一个范围当中。
过了一会儿看看果然如此:
可以清晰看到整个负载的动向,也可以看到副本从 1 个增加到了 2 个,再到 4 个,再到 7 个。
然后再去看看应用是否启动了多个副本以应对这种突然增高的负载:
可以看到,副本已经增加到了 7 个,那么这个功能的试验,到这里也就结束了,真的是非常犀利,非常方便,与此同时,也非常期待 rancher 的下一个版本能够快点到来,争取早点完美支持这种自动的动态调整副本功能。
上次更新: 2024/07/04, 22:40:37