91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kubernetes集群中HPA實現pod副本數量的自動擴容與縮容

發布時間:2020-05-26 21:09:57 來源:億速云 閱讀:1228 作者:鴿子 欄目:云計算

Kubernetes集群可以通過Replication Controller的scale機制完成服務的擴容或縮容,實現具有伸縮性的服務。

Kubernetes集群自動伸縮分為:

  • sacle手動伸縮:可參考K8s資源對象的基本管理之使用命令行的方式(升級、回滾、擴容、縮容);
  • autoscale自動伸縮:也就是本篇博文所介紹的HPA;

Kubernetes自動擴展主要分為:

  • 水平擴展:針對實例數目的增減;
  • 垂直擴展:也就是單個實例就可以使用的資源的增減,比如增加CPU、內存;

一、HPA簡介

HPA的全稱為(Horizontal Pod Autoscaling)它可以根據當前pod資源的使用率(如CPU、磁盤、內存等),進行副本數的動態的擴容與縮容,以便減輕各個pod的壓力。當pod負載達到一定的閾值后,會根據擴縮容的策略生成更多新的pod來分擔壓力,當pod的使用比較空閑時,在穩定空閑一段時間后,還會自動減少pod的副本數量。

若要實現自動擴縮容的功能,還需要部署heapster服務,用來收集及統計資源的利用率,支持kubectl top命令,heapster服務集成在prometheus(普羅米修斯) MertricServer服務中,所以說,為了方便,我這里基于prometheus服務的環境上進行部署HPA(動態擴縮容)的服務。

可以參考博文Kubernetes的三種可視化UI界面中的第三個部署Prometheus服務,來運行prometheus服務,如果不想部署prometheus,那么可以參考github上來單獨部署heapster服務。

說這么多,總之就是想要使用HPA,就必須保證,可以在master節點上執行如下命令:

[root@master ~]# kubectl top node      #查看節點的資源使用情況
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   1317m        65%    1383Mi          80%       
node01   1237m        61%    1082Mi          62%       
node02   1146m        57%    1045Mi          60%   

二、實現pod自動擴容與縮容

1)生成HPA控制器

[root@master ~]#  kubectl run php-apache --image=mirrorgooglecontainers/hpa-example --requests=cpu=200m --expose --port=80
#運行hpa資源,名稱為php-apache,并設置請求CPU的資源為200m并暴露一個80端口
[root@master ~]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
#當hpa資源的deployment資源對象的CPU使用率達到50%時,就進行擴容,最多可以擴容到10個
[root@master ~]# kubectl get svc | grep php-apache    #查看php-apache對應的svc群集IP
php-apache   ClusterIP   10.97.45.108   <none>        80/TCP    44m
[root@master ~]#  kubectl get pod | grep php-apa    #確定當前的pod正常運行
php-apache-867f97c8cb-9mpd6   1/1     Running   0          44m

2)模擬消耗php-apache的資源,并驗證pod是否會自動擴容與縮容

新開啟多個終端(也可使用node節點),對php-apache的pod進行死循環請求,如下(如果你的系統資源比較充足,可以選擇開啟多個終端,對pod進行死循環請求,我這里開啟了兩個node的終端,同時請求php-apache的pod):

[root@node01 ~]# while true; do wget -q -O- 10.97.45.108; done              #一直返回ok屬于正常現象
#模擬多用戶對php-apache的pod造成的并發請求
[root@master ~]# kubectl get  hpa   #查看hpa資源對cpu的占用情況
#也可使用“-w”選項對CPU資源占用情況實時監控
NAME         REFERENCE               TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   416%/50%   1         10        10         56m
[root@master ~]#  kubectl get pod
#在運行死循環請求一段時間后,查看pod數量,當然使用-w選項對pod的變化進行實時的監控
NAME                          READY   STATUS    RESTARTS   AGE
php-apache-867f97c8cb-6jsjq   1/1     Running   0          4m9s
php-apache-867f97c8cb-7xd5x   1/1     Running   0          51s
php-apache-867f97c8cb-9mpd6   1/1     Running   0          56m
php-apache-867f97c8cb-dhng7   1/1     Running   0          3m8s
php-apache-867f97c8cb-qc9hr   1/1     Running   0          2m22s
php-apache-867f97c8cb-rj494   1/1     Running   0          3m38s
php-apache-867f97c8cb-sbn9n   1/1     Running   0          3m38s
php-apache-867f97c8cb-vzfbg   1/1     Running   0          4m9s
php-apache-867f97c8cb-vzfbg   1/1     Running   0          5m19s
php-apache-867f97c8cb-vzfbg   1/1     Running   0          3m39s
#當然最大也就只可以產生10個pod,因為我們之前規定最多產生10個pod

當停止死循環請求后,也并不會立即減少pod數量,會等一段時間后減少pod數量,防止流量再次激增。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛曲县| 桂阳县| 镇赉县| 五常市| 和林格尔县| 仙游县| 通城县| 洛宁县| 鄂尔多斯市| 永济市| 方山县| 图木舒克市| 子长县| 日照市| 曲周县| 天等县| 吴忠市| 巴林右旗| 玛曲县| 灵石县| 夏邑县| 屏东县| 繁昌县| 从化市| 堆龙德庆县| 尚义县| 高淳县| 亳州市| 青州市| 外汇| 会东县| 武宣县| 嘉荫县| 天气| 石泉县| 凤冈县| 马山县| 五原县| 三原县| 贵溪市| 大关县|