這篇文章將為大家詳細(xì)講解有關(guān)k8s的HPA是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到海棠網(wǎng)站設(shè)計(jì)與海棠網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋海棠地區(qū)。Kubernetes HPA(水平Pod自動(dòng)縮放)Pod水平自動(dòng)伸縮,通過(guò)此功能,只需簡(jiǎn)單的配置,即可便可以利用監(jiān)控指標(biāo)(cpu使用率、磁盤(pán)、內(nèi)存等)自動(dòng)的擴(kuò)容或縮容服務(wù)中Pod數(shù)量,當(dāng)業(yè)務(wù)需求增加時(shí),系統(tǒng)將為您無(wú)縫地自動(dòng)增加適量容器,提高系統(tǒng)穩(wěn)定性。此處將詳細(xì)講解HPA的核心設(shè)計(jì)原理和基于Hepaster的使用方法。
系統(tǒng)應(yīng)該能否獲取到當(dāng)前Pod的資源使用情況 (意思是可以執(zhí)行kubectl top pod命令,并且能夠得到反饋信息)。
若要實(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ù)。
主機(jī) | IP地址 | 服務(wù) |
---|---|---|
master | 192.168.1.21 | k8s |
node01 | 192.168.1.22 | k8s |
node02 | 192.168.1.23 | k8s |
基于[https://blog.51cto.com/14320361/2473879]() 的實(shí)驗(yàn)繼續(xù)進(jìn)行
heapster:這個(gè)組件之前是集成在k8s集群的,不過(guò)在1.12版本之后被移除了。如果還想使用此功能,應(yīng)該部署metricServer, 這個(gè)k8s集群資源使用情況的聚合器。
Cousom:同樣處于beta階段(autoscaling/v2beta1),但是涉及到自定義的REST API的開(kāi)發(fā),復(fù)雜度會(huì)大一些,并且當(dāng)需要從自定義的監(jiān)控中獲取數(shù)據(jù)時(shí),只能設(shè)置絕對(duì)值,無(wú)法設(shè)置使用率。
水平擴(kuò)展(scale out),針對(duì)于實(shí)例數(shù)目的增減。
垂直擴(kuò)展(scal up),即單個(gè)實(shí)例可以使用的資源的增減, 比如增加cpu和增大內(nèi)存。
HPA屬于前者。它可以根據(jù)CPU使用率或應(yīng)用自定義metrics自動(dòng)擴(kuò)展Pod數(shù)量(支持 replication controller、deployment 和 replica set)。
創(chuàng)建HPA資源,設(shè)定目標(biāo)CPU使用率限額,以及大/最小實(shí)例數(shù),一定要設(shè)置Pod的資源限制參數(shù): request,否則HPA不會(huì)工作。
控制管理器每隔30s(在kube-controller-manager.service中可以通過(guò)–-horizontal-pod-autoscaler-sync-period修改)查詢metrics的資源使用情況。
然后與創(chuàng)建時(shí)設(shè)定的值和指標(biāo)做對(duì)比(平均值之和/限額),求出目標(biāo)調(diào)整的實(shí)例個(gè)數(shù)。
目標(biāo)調(diào)整的實(shí)例數(shù)不能超過(guò)第一條中設(shè)定的大/最小實(shí)例數(shù)。如果沒(méi)有超過(guò),則擴(kuò)容;超過(guò),則擴(kuò)容至大的實(shí)例個(gè)數(shù)。
重復(fù)第2-4步。
這里,我們使用一個(gè)測(cè)試鏡像, 這個(gè)鏡像基于php-apache制作的docker鏡像,包含了一些可以運(yùn)行cpu密集計(jì)算任務(wù)的代碼。
[root@master ~]#docker pull mirrorgooglecontainers/hpa-example:latest //下載hpa-example鏡像 [root@master ~]# kubectl run php-apache --image=mirrorgooglecontainers/hpa-example --requests=cpu=200m --expose --port=80 //基于hpa-example鏡像,運(yùn)行一個(gè)deployment控制器,請(qǐng)求CPU的資源為200m,暴露一個(gè)80端口
[root@master ~]# kubectl get deployments.
[root@master ~]# kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10 //當(dāng)deployment資源對(duì)象的CPU使用率達(dá)到50%時(shí),就進(jìn)行擴(kuò)容,最多可以擴(kuò)容到10個(gè)
[root@master ~]# kubectl get hpa
新開(kāi)啟多個(gè)終端,對(duì)pod進(jìn)行死循環(huán)請(qǐng)求php-apache的pod
[root@master ~]# kubectl run -i --tty load-generator --image=busybox /bin/sh
[root@master ~]# while true; do wget -q -O- http://php-apache.default.svc.cluster.local ; done //不停地向php-apache的svc資源,發(fā)送ok
[root@master ~]# kubectl get hpa -w //實(shí)時(shí)查看pod的cpu狀態(tài)
可以看到php-apache的cpu使用情況已經(jīng)超過(guò)了50%
[root@master images]# kubectl get pod -w //實(shí)時(shí)查看pod的狀態(tài)
關(guān)于“k8s的HPA是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
當(dāng)前標(biāo)題:k8s的HPA是什么-創(chuàng)新互聯(lián)
文章來(lái)源:http://aaarwkj.com/article24/dpjsje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、響應(yīng)式網(wǎng)站、建站公司、服務(wù)器托管、商城網(wǎng)站、電子商務(wù)
聲明:本網(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)
猜你還喜歡下面的內(nèi)容