k8s群集之動(dòng)態(tài)擴(kuò)縮容——HPA-創(chuàng)新互聯(lián)

博文大綱:
一、HPA介紹
二、實(shí)現(xiàn)pod擴(kuò)容與縮容的示例

10多年的環(huán)縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整環(huán)縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“環(huán)縣網(wǎng)站設(shè)計(jì)”,“環(huán)縣網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、HPA介紹

HPA的全稱為Horizontal Pod Autoscaling,它可以根據(jù)當(dāng)前pod資源的使用率(如CPU、磁盤、內(nèi)存等),進(jìn)行副本數(shù)的動(dòng)態(tài)的擴(kuò)容與縮容,以便減輕各個(gè)pod的壓力。當(dāng)pod負(fù)載達(dá)到一定的閾值后,會(huì)根據(jù)擴(kuò)縮容的策略生成更多新的pod來(lái)分擔(dān)壓力,當(dāng)pod的使用比較空閑時(shí),在穩(wěn)定空閑一段時(shí)間后,還會(huì)自動(dòng)減少pod的副本數(shù)量。

若要實(shí)現(xiàn)自動(dòng)擴(kuò)縮容的功能,還需要部署heapster服務(wù),用來(lái)收集及統(tǒng)計(jì)資源的利用率,支持kubectl top命令,heapster服務(wù)集成在prometheus(普羅米修斯) MertricServer服務(wù)中,所以說(shuō),為了方便,我這里基于prometheus服務(wù)的環(huán)境上進(jìn)行部署HPA(動(dòng)態(tài)擴(kuò)縮容)的服務(wù)。

可以參考博文:k8s群集的三種Web-UI界面部署中的第三個(gè)部署Prometheus服務(wù),來(lái)運(yùn)行prometheus服務(wù),如果不想部署prometheus,那么可以參考github上來(lái)單獨(dú)部署heapster服務(wù),

總言而之,要想實(shí)現(xiàn)pod副本數(shù)量的一個(gè)擴(kuò)縮容,就必須保證,可以在master上執(zhí)行下面的命令:

[root@master ~]# kubectl top node      #查看節(jié)點(diǎn)的資源使用情況
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   218m         10%    1362Mi          79%       
node01   113m         5%     1116Mi          64%       
node02   127m         6%     1287Mi          74%

二、實(shí)現(xiàn)pod擴(kuò)容與縮容的示例

1、生成HPA控制器

#運(yùn)行這個(gè)hpa-example,請(qǐng)求CPU的資源為200m,暴露一個(gè)80端口
[root@master ~]# kubectl run php-apache --image=mirrorgooglecontainers/hpa-example --requests=cpu=200m --expose --port=80
#當(dāng)deployment資源對(duì)象的CPU使用率達(dá)到50%時(shí),就進(jìn)行擴(kuò)容,最多可以擴(kuò)容到10個(gè)
[root@master ~]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
#上面的命令作用是生成了一個(gè)HPA的控制器,用于控制自動(dòng)擴(kuò)縮容
[root@master ~]# kubectl get svc | grep php-apache   #查看php-apache對(duì)應(yīng)的svc群集IP
php-apache   ClusterIP   10.99.60.48   <none>        80/TCP    15m
[root@master ~]# kubectl get pod | grep php-apa    #確定當(dāng)前的pod數(shù)量
php-apache-867f97c8cb-vw74k      1/1     Running   0          17m

2、模擬消耗php-apache的資源,并驗(yàn)證pod是否會(huì)自動(dòng)擴(kuò)容與縮容

新開啟多個(gè)終端,對(duì)pod進(jìn)行死循環(huán)請(qǐng)求,如下(如果你的系統(tǒng)資源比較充足,可以選擇開啟多個(gè)終端,對(duì)pod進(jìn)行死循環(huán)請(qǐng)求,我這里開啟了三個(gè)終端,同時(shí)請(qǐng)求php-apache的pod):

[root@master ~]# while true; do wget -q -O- 10.99.60.48; done   #每個(gè)終端都執(zhí)行此命令
[root@master ~]# kubectl top pod      #可以通過(guò)此命令隨時(shí)查看pod的負(fù)載情況
NAME                             CPU(cores)   MEMORY(bytes)   
load-generator-7d549cd44-xm98c   0m           1Mi             
php-apache-867f97c8cb-vw74k      208m         20Mi           
#也可以不定時(shí)的查看pod的數(shù)量是否有變化
[root@master ~]# kubectl get pod    #在運(yùn)行死循環(huán)請(qǐng)求一段時(shí)間后,查看pod數(shù)量
#可以發(fā)現(xiàn)php-apache的pod數(shù)量變成了10個(gè),并且不會(huì)再增加,因?yàn)樵谏厦娴拿顚?duì)其限制了大數(shù)
NAME                             READY   STATUS              RESTARTS   AGE
load-generator-7d549cd44-xm98c   1/1     Running             1          25m
php-apache-867f97c8cb-4r6sk      1/1     Running             0          19m
php-apache-867f97c8cb-4rcpk      1/1     Running             0          13m
php-apache-867f97c8cb-5pbxf      1/1     Running             0          16m
php-apache-867f97c8cb-8htth      1/1     Running             0          13m
php-apache-867f97c8cb-d94h9      0/1     ContainerCreating   0          13m
php-apache-867f97c8cb-drh62      1/1     Running             0          18m
php-apache-867f97c8cb-f67bs      0/1     ContainerCreating   0          17m
php-apache-867f97c8cb-nxc2r      1/1     Running             0          19m
php-apache-867f97c8cb-vw74k      1/1     Running             0          39m
php-apache-867f97c8cb-wb6l5      0/1     ContainerCreating   0          15m

當(dāng)停止死循環(huán)請(qǐng)求后,也并不會(huì)立即減少pod數(shù)量,會(huì)等一段時(shí)間后減少pod數(shù)量,防止流量再次激增。

至此,pod副本數(shù)量的自動(dòng)擴(kuò)縮容就實(shí)現(xiàn)了。

———————— 本文至此結(jié)束,感謝閱讀 ————————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:k8s群集之動(dòng)態(tài)擴(kuò)縮容——HPA-創(chuàng)新互聯(lián)
分享網(wǎng)址:http://muchs.cn/article4/dsipie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)虛擬主機(jī)、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)