官术网_书友最值得收藏!

4.3.3 自定義指標(biāo)實(shí)現(xiàn)水平擴(kuò)容

應(yīng)用部署后會存在彈性擴(kuò)容的需求,OpenShift提供了自動水平擴(kuò)容(簡稱HPA)的機(jī)制來實(shí)現(xiàn),但是默認(rèn)都是通過CPU的利用率來實(shí)現(xiàn)HPA。當(dāng)然,通過內(nèi)存利用率也可以實(shí)現(xiàn)HPA,但相對沒有CPU那么有效(Java應(yīng)用的內(nèi)存變化并不像CPU那么明顯)。在真實(shí)環(huán)境中僅通過CPU利用率實(shí)現(xiàn)HPA顯然太過單一,很多時(shí)候需要定制化HPA。如通過應(yīng)用的http_requests指標(biāo)來實(shí)現(xiàn)HPA,這樣才更貼近應(yīng)用。

OpenShift上默認(rèn)已經(jīng)部署了Prometheus用于監(jiān)控基礎(chǔ)設(shè)施,出于業(yè)務(wù)監(jiān)控和基礎(chǔ)設(shè)施監(jiān)控分離的原則,通常會新建Prometheus專門負(fù)責(zé)采集業(yè)務(wù)應(yīng)用層面的指標(biāo)。Prometheus本質(zhì)是僅采集應(yīng)用暴露的指標(biāo),所以如果要從Prometheus中獲取應(yīng)用的指標(biāo),那么這個(gè)應(yīng)用就必須暴露這個(gè)指標(biāo)(寫應(yīng)用的時(shí)候直接暴露,或者用exportor對外暴露)。

我們想通過OpenShift中客戶化指標(biāo)(如http_requests)實(shí)現(xiàn)HPA,那就需要:

1)應(yīng)用暴露這個(gè)指標(biāo),否則Prometheus無法采集。

2)部署一個(gè)Prometheus adapter,這個(gè)adapter需要有http_requests的指標(biāo)。部署完adapter后,它會注冊API。Prometheus抓到應(yīng)用http_requests的數(shù)據(jù)后,adapter可以通過查詢獲取。HPA和adapter的API對接后,才能通過http_requests進(jìn)行HPA,如圖4-27所示。

圖4-27 Prometheus adapter實(shí)現(xiàn)定制化HPA

由于篇幅有限,具體的實(shí)現(xiàn)步驟請參照如圖4-28所示二維碼的文章。

圖4-28 自定義指標(biāo)實(shí)現(xiàn)HPA具體配置步驟

配置完畢后,我們對應(yīng)用加壓,發(fā)現(xiàn)Pod進(jìn)行了擴(kuò)容,擴(kuò)容原因是http_requests above target,說明定制化HPA成功。


Events:
Type    Reason             Age                From                       Message
Normal  SuccessfulRescale  12s (x3 over 42s)  horizontal-pod-autoscaler  New 
    size: 4; reason: pods metric http_requests above target

主站蜘蛛池模板: 陇西县| 浙江省| 贵港市| 留坝县| 大关县| 黄平县| 漯河市| 太原市| 班玛县| 开化县| 内乡县| 昂仁县| 宁德市| 盐边县| 衢州市| 渑池县| 拉萨市| 通许县| 九寨沟县| 集贤县| 桃源县| 岐山县| 台中县| 南投县| 三原县| 华宁县| 山东| 宣武区| 阿尔山市| 依安县| 肥西县| 哈尔滨市| 西畴县| 文山县| 红安县| 马山县| 孝感市| 剑川县| 新昌县| 兴和县| 象山县|