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

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