久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Kubernetes自動(dòng)伸縮機(jī)制,為你降本增效

從技術(shù)上講,容器化應(yīng)用能該幫助組織更具有成本的優(yōu)勢(shì),但Kubernetes到處布滿(mǎn)了成本陷阱,可能會(huì)使你超出預(yù)算。幸運(yùn)的是,有一些策略可以控制云成本,自動(dòng)伸縮就是其中之一。Kubernetes帶有三個(gè)內(nèi)置的自動(dòng)伸縮機(jī)制來(lái)幫助你做到這一點(diǎn)。它們配合得越好,運(yùn)行應(yīng)用程序的成本就越低。

Kubernetes自動(dòng)伸縮機(jī)制,為你降本增效

1.Pod水平自動(dòng)擴(kuò)縮(HPA)

Pod 水平自動(dòng)擴(kuò)縮(HorizontalpodAutoscaler) 可以基于CPU利用率自動(dòng)擴(kuò)縮 ReplicationController、Deployment、ReplicaSet 和 StatefulSet 中的pod數(shù)量。除了CPU利用率,也可以基于其他應(yīng)程序提供的 自定義度量指標(biāo) 來(lái)執(zhí)行自動(dòng)擴(kuò)縮。

生產(chǎn)環(huán)境中,許多應(yīng)用程序的使用情況會(huì)出現(xiàn)波動(dòng),這意味著實(shí)時(shí)添加或刪除pod副本會(huì)帶來(lái)更好的成本收益。這就是 HorizontalpodAutoscaler (HPA) 通過(guò)自動(dòng)執(zhí)行此操作來(lái)提供幫助的地方。

何時(shí)使用 HPA?

它非常適合擴(kuò)展無(wú)狀態(tài)應(yīng)用程序,當(dāng)然也可以用于有狀態(tài)應(yīng)用。如果將 HPA 與Cluster Autoscaler(CA)結(jié)合使用,能夠?yàn)榻?jīng)常變化的工作負(fù)載獲得最大的成本節(jié)約。當(dāng)pod數(shù)量減少時(shí),這將減少活動(dòng)節(jié)點(diǎn)的數(shù)量。

HPA 是如何工作的?

HPA 監(jiān)控pod以了解pod副本的數(shù)量是否需要更改。為了確定這一點(diǎn),它采用每個(gè)pod指標(biāo)值的平均值,并檢查刪除或添加副本,是否會(huì)使該值更接近目標(biāo)。

例如,如果你部署的目標(biāo)CPU利用率為50%,而現(xiàn)在你有五個(gè)pod在那里運(yùn)行,則平均CPU利用率為 75%。為了使pod平均值更接近你的目標(biāo),HPA 控制器將增加三個(gè)副本。

HPA 最佳實(shí)踐

  • 為 HPA 提供每個(gè)pod資源指標(biāo):需要在Kubernetes集群中安裝 metrics-server。
  • 為每個(gè)容器配置值:HPA 根據(jù)觀(guān)察到的pod的CPU利用率值(來(lái)自單個(gè)pod的資源請(qǐng)求的百分比)做出擴(kuò)展決策。如果你沒(méi)有包含某些容器的值,則計(jì)算將不準(zhǔn)確并可能導(dǎo)致出現(xiàn)糟糕的擴(kuò)展決策。
  • 使用自定義指標(biāo):HPA 擴(kuò)展決策的另一個(gè)來(lái)源是自定義指標(biāo)。HPA 支持兩種類(lèi)型的自定義指標(biāo):pod 指標(biāo)和對(duì)象指標(biāo)。確保使用正確的目標(biāo)類(lèi)型。你還可以使用來(lái)自第三方監(jiān)控系統(tǒng)的外部指標(biāo)。

    Kubernetes自動(dòng)伸縮機(jī)制,為你降本增效

    2. Pod垂直自動(dòng)擴(kuò)縮 (VPA)

    Vertical Pod Autoscaler(VPA),即垂直 Pod 自動(dòng)擴(kuò)縮容,它根據(jù)容器資源使用率自動(dòng)設(shè)置 CPU 和 內(nèi)存 的requests,從而允許在節(jié)點(diǎn)上進(jìn)行適當(dāng)?shù)恼{(diào)度,以便為每個(gè) Pod 提供適當(dāng)?shù)馁Y源。它既可以縮小過(guò)度請(qǐng)求資源的容器,也可以根據(jù)其使用情況隨時(shí)提升資源不足的容量。

    這種自動(dòng)縮放機(jī)制增加和減少了pod容器的CPU和內(nèi)存資源請(qǐng)求,以使分配的集群資源與實(shí)際使用情況保持一致。VPA 還需要訪(fǎng)問(wèn)Kubernetes指標(biāo)服務(wù)器,因?yàn)樗鼉H替換由副本控制器管理(Replication Controller)的pod。

    提示:如果你的 HPA 配置沒(méi)有使用CPU或內(nèi)存來(lái)設(shè)置其擴(kuò)展目標(biāo),請(qǐng)同時(shí)使用 VPA 和 HPA。

    何時(shí)使用 VPA?

    工作負(fù)載可能會(huì)在某個(gè)時(shí)候遇到高利用率,但不斷增加其請(qǐng)求限制,不是一個(gè)好辦法。你可能會(huì)浪費(fèi)CPU或內(nèi)存資源并限制運(yùn)行它們的節(jié)點(diǎn)。將工作負(fù)載分布到多個(gè)應(yīng)用程序?qū)嵗袝r(shí)候也是很棘手的,這就是 Vertical Pod Autoscaler 的幫助所在。

    VPA 是如何工作的?

    VPA 部署由三個(gè)組件組成:

    • Recommender : 監(jiān)控資源利用率并計(jì)算目標(biāo)值,也就是檢查歷史資源利用率和當(dāng)前使用的模式,并推薦一個(gè)理想的資源請(qǐng)求值
    • Updater : 檢查pods 資源限制是否需要更新
    • Admission Controller:在創(chuàng)建pod時(shí)覆蓋其資源請(qǐng)求

    由于Kubernetes不允許更改正在運(yùn)行的pod的資源限制,因此 VPA 首先終止舊的pod,然后將更新的值注入新的pod規(guī)范。

    VPA 最佳實(shí)踐

    避免在Kubernetes的1.11版本之前使用。

    使用updateMode:Off運(yùn)行 VPA,以了解你要自動(dòng)縮放的pod的資源使用情況。這將為你提供推薦的CPU和內(nèi)存請(qǐng)求,也是以后調(diào)整的重要基礎(chǔ)。

    如果工作負(fù)載經(jīng)常出現(xiàn)高使用率和低使用率的峰值,則 VPA 可能會(huì)過(guò)于激進(jìn),因?yàn)樗赡軙?huì)不斷地一遍又一遍地替換pod。在這種情況下,使用HPA 效果更好。

    3. Cluster Autoscaler(CA)

    Cluster Autoscaler 在K8S集群中,通過(guò)增加/刪除其中的Node,達(dá)到集群擴(kuò)縮容的目的。由于 Cluster Autoscaler 控制器工作在基礎(chǔ)設(shè)施級(jí)別,因此它需要具備添加和刪除基礎(chǔ)設(shè)施的權(quán)限,你應(yīng)該安全地管理這些授權(quán)信息(例如,遵循最小權(quán)限原則)。

    何時(shí)使用集群自動(dòng)擴(kuò)縮器?

    如果你希望通過(guò)動(dòng)態(tài)擴(kuò)展節(jié)點(diǎn)數(shù)量,以最大化當(dāng)前集群利用率來(lái)優(yōu)化成本,則此自動(dòng)擴(kuò)展機(jī)制非常有效。對(duì)于旨在擴(kuò)展和滿(mǎn)足動(dòng)態(tài)需求的工作負(fù)載而言,它是一款出色的工具。

    Cluster Autoscaler 如何工作?

    它會(huì)檢查不可調(diào)度的pod,然后計(jì)算是否可以整合當(dāng)前部署的所有pod,以在較少數(shù)量的節(jié)點(diǎn)上運(yùn)行它們。如果 Cluster Autoscaler 識(shí)別出具有可以重新調(diào)度到集群中其他節(jié)點(diǎn)的pod的節(jié)點(diǎn),它會(huì)驅(qū)逐它們并刪除備用節(jié)點(diǎn)。

    集群自動(dòng)擴(kuò)縮器最佳實(shí)踐

    • 部署 Cluster Autoscaler 時(shí),要與之相匹配的Kubernetes版本一起使用。(兼容性列表)。
    • 檢查集群節(jié)點(diǎn)是否具有相同的CPU和內(nèi)存容量:否則集群自動(dòng)縮放器將無(wú)法工作,因?yàn)樗僭O(shè)集群中的每個(gè)節(jié)點(diǎn)都具有相同的容量。
    • 確保自動(dòng)縮放的pod都具有指定的資源請(qǐng)求。

    總結(jié)

    自動(dòng)縮放機(jī)制對(duì)于控制云成本非常有價(jià)值,但它們需要大量的手動(dòng)配置:

    • 防止 HPA 和 VPA 沖突:你需要檢查你的 HPA 和 VPA 策略是否最終發(fā)生沖突。密切關(guān)注成本,以防止它們失控。
    • 平衡三種機(jī)制:你需要平衡三種機(jī)制的組合,以確保工作負(fù)載支持峰值負(fù)載,并在負(fù)載較低時(shí)將成本保持在最低水平。

    參考:https://www.kubernetes.org.cn/9443.html

    文章轉(zhuǎn)載:K8S中文社區(qū)
    (版權(quán)歸原作者所有,侵刪)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!

    1. 主站蜘蛛池模板: 扎兰屯市| 云林县| 梁河县| 闵行区| 财经| 手机| 阿合奇县| 阜新市| 兰西县| 温州市| 涟水县| 临漳县| 泽库县| 武鸣县| 霍山县| 紫阳县| 郎溪县| 墨竹工卡县| 津市市| 大城县| 仙居县| 嵊州市| 莱芜市| 阳新县| 东源县| 紫金县| 五华县| 成武县| 巴彦县| 唐山市| 阜平县| 扶风县| 民县| 石楼县| 巴塘县| 喀喇沁旗| 蕉岭县| 都匀市| 林芝县| 龙陵县| 六枝特区|