Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod

來源: 51CTO
作者:wuyvzhang
時(shí)間:2021-04-14
17126
當(dāng)我們將應(yīng)用部署到AKS中以pod的形式對(duì)外提供服務(wù)時(shí),為了確保用戶可以獲得良好的使用體驗(yàn),我們需要關(guān)注如下兩種情況:POD因?yàn)椴幻髟袙斓簦瑢?dǎo)致服務(wù)不可用;當(dāng)出現(xiàn)大量用戶訪問時(shí),Pod在高負(fù)荷的情況下能否支撐我們的應(yīng)用。

當(dāng)我們將應(yīng)用部署到AKS中以pod的形式對(duì)外提供服務(wù)時(shí),為了確保用戶可以獲得良好的使用體驗(yàn),我們需要關(guān)注如下兩種情況:

  • POD因?yàn)椴幻髟袙斓?,?dǎo)致服務(wù)不可用

  • 當(dāng)出現(xiàn)大量用戶訪問時(shí),Pod在高負(fù)荷的情況下能否支撐我們的應(yīng)用

對(duì)于Pod的高可用性我們可以使用AKS的deployment控制器來確保Pod可以持續(xù)對(duì)外提供服務(wù),但是對(duì)于面臨大量用戶訪問時(shí),我們就需要擴(kuò)展我們的資源來滿足業(yè)務(wù)需求。
前面的文章中給大家介紹了手動(dòng)擴(kuò)展pod來滿足業(yè)務(wù)的擴(kuò)展需求,但是相信大家都已經(jīng)意識(shí)到了如果我們?nèi)斯けO(jiān)控pods,人工進(jìn)行調(diào)整副本那么這個(gè)工作量無疑是巨大的,但kubernetes已經(jīng)有了相應(yīng)的機(jī)制來應(yīng)對(duì)了。這就是我們今天要為大家介紹的水平自動(dòng)擴(kuò)充POD(HPA)
HPA全稱Horizontal Pod Autoscaler控制器工作流程

HPA的工作流程如下:

  • 創(chuàng)建HPA資源對(duì)象,關(guān)聯(lián)對(duì)應(yīng)資源例如Deployment,設(shè)定目標(biāo)CPU使用率閾值,最大,最小replica數(shù)量。
    前提:pod一定要設(shè)置資源限制,參數(shù)request,HPA才會(huì)工作。

  • HPA控制器每隔15秒鐘(可以通過設(shè)置controller manager的–horizontal-pod-autoscaler-sync-period參數(shù)設(shè)定,默認(rèn)15s)通過觀測(cè)metrics值獲取資源使用信息

  • HPA控制器將獲取資源使用信息與HPA設(shè)定值進(jìn)行對(duì)比,計(jì)算出需要調(diào)整的副本數(shù)量

  • 根據(jù)計(jì)算結(jié)果調(diào)整副本數(shù)量,使得單個(gè)POD的CPU使用率盡量逼近期望值,但不能照顧設(shè)定的最大,最小值。

  • 以上2,3,4周期循環(huán)

說了這么多,下面我們來看下如何配置HPA:
在配置HPA之前,我們需要先了解Node節(jié)點(diǎn)的配置情況
檢查與配置resource limit
使用kubectl get nodes命令檢查node信息(node名稱)
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
使用命令 kubectl describe nodes NODE_NAME 確認(rèn) Node 資源配置的狀態(tài), 因?yàn)槲覀冎皼]有配置Resource quata,因此我們需要先設(shè)定好 Resource 限制:
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
打開我們之前創(chuàng)建的yaml文件,修改 Resources 配置, 其中 CPU 配置 Container 只使用 1 個(gè) CPU 單元, Request 限制使用 0.5 個(gè) CPU 單元:
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
修改完成以后使用kubectl apply -f FILE_NAME重新部署對(duì)應(yīng)POD
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod

設(shè)置水平自動(dòng)擴(kuò)充HPA
使用命令 kubectl autoscale deployment nginx--cpu-percent=1 --min=1 --max=10 將自動(dòng)擴(kuò)充設(shè)定為 CPU-percent 設(shè)定為1%, 并且將 minimum replica 數(shù)設(shè)為 1, maximum replica 數(shù)設(shè)為 10.
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod

配置完成以后我們使用webbench來對(duì)我們部署的NGINX網(wǎng)站進(jìn)行壓力測(cè)試:
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
使用命令 kubectl get hpa 觀察水平自動(dòng)擴(kuò)充狀態(tài), 請(qǐng)注意 Target 中有兩個(gè)數(shù)字, 是 Current/Target CPU 使用率
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
使用命令 kubectl get deployment 觀察 deployment 數(shù)量有無增加
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
使用命令 kubectl get pod 觀察 pod 數(shù)量有無增加, 并且注意狀態(tài), 如果 > 1 表示水平自動(dòng)擴(kuò)充 (hpa) 已經(jīng)成功設(shè)置且生效了
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod

清除資源
測(cè)試完成以后,我們可以使用kubect delete -f FILE_NAME 來刪除對(duì)應(yīng)的deployment資源:
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod
使用kubectl delete hpa nginx來刪除hpa資源:
Azure Kubernetes 水平自動(dòng)擴(kuò)充Pod

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于51CTO,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-172024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開了嶄新的一頁,突破了性能、云原生開發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-162024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-102024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-092024-12-09
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家