- OpenShift在企業(yè)中的實(shí)踐:PaaS DevOps微服務(wù)(第2版)
- 魏新宇 郭躍軍
- 538字
- 2021-11-05 10:17:26
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
- 無代碼編程:用云表搭建企業(yè)數(shù)字化管理平臺
- 樂學(xué)Web編程:網(wǎng)站制作不神秘
- PyQt從入門到精通
- FreeSWITCH 1.6 Cookbook
- Julia機(jī)器學(xué)習(xí)核心編程:人人可用的高性能科學(xué)計(jì)算
- Mastering LibGDX Game Development
- Reactive Programming With Java 9
- Windows Forensics Cookbook
- bbPress Complete
- 從Excel到Python:用Python輕松處理Excel數(shù)據(jù)(第2版)
- Learning Zurb Foundation
- 數(shù)據(jù)結(jié)構(gòu)與算法分析(C++語言版)
- Clojure Reactive Programming
- 51單片機(jī)C語言開發(fā)教程
- Lighttpd源碼分析