溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)K8S Cluster Autoscaler 集群自動(dòng)伸縮

發(fā)布時(shí)間:2021-12-16 10:40:00 來(lái)源:億速云 閱讀:332 作者:柒染 欄目:互聯(lián)網(wǎng)科技

如何實(shí)現(xiàn)K8S Cluster Autoscaler 集群自動(dòng)伸縮,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

什么是 cluster-autoscaler

Cluster Autoscaler  (CA)是一個(gè)獨(dú)立程序,是用來(lái)彈性伸縮kubernetes集群的。在使用kubernetes集群經(jīng)常問(wèn)到的一個(gè)問(wèn)題是,應(yīng)該保持多大的節(jié)點(diǎn)規(guī)模來(lái)滿足應(yīng)用需求呢?cluster-autoscaler  出現(xiàn)解決了這個(gè)問(wèn)題,它可以自動(dòng)根據(jù)部署應(yīng)用所請(qǐng)求資源量來(lái)動(dòng)態(tài)的伸縮集群。

  • 項(xiàng)目地址:https://github.com/kubernetes/autoscaler

Cluster Autoscaler 什么時(shí)候伸縮集群?

在以下情況下,集群自動(dòng)擴(kuò)容或者縮放:

  • 擴(kuò)容:由于資源不足,某些Pod無(wú)法在任何當(dāng)前節(jié)點(diǎn)上進(jìn)行調(diào)度

  • 縮容: Node節(jié)點(diǎn)資源利用率較低時(shí),且此node節(jié)點(diǎn)上存在的pod都能被重新調(diào)度到其他node節(jié)點(diǎn)上運(yùn)行

什么時(shí)候集群節(jié)點(diǎn)不會(huì)被 CA 刪除?

  • 節(jié)點(diǎn)上有pod被 PodDisruptionBudget 控制器限制。

  • 節(jié)點(diǎn)上有命名空間是 kube-system 的pods。

  • 節(jié)點(diǎn)上的pod不是被控制器創(chuàng)建,例如不是被deployment, replica set, job, stateful set創(chuàng)建。

  • 節(jié)點(diǎn)上有pod使用了本地存儲(chǔ)

  • 節(jié)點(diǎn)上pod驅(qū)逐后無(wú)處可去,即沒(méi)有其他node能調(diào)度這個(gè)pod

  • 節(jié)點(diǎn)有注解:"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"(在CA  1.0.3或更高版本中受支持)

Horizontal Pod Autoscaler 如何與 Cluster Autoscaler 一起使用?

Horizontal Pod  Autoscaler  會(huì)根據(jù)當(dāng)前CPU負(fù)載更改部署或副本集的副本數(shù)。如果負(fù)載增加,則HPA將創(chuàng)建新的副本,集群中可能有足夠的空間,也可能沒(méi)有足夠的空間。如果沒(méi)有足夠的資源,CA將嘗試啟動(dòng)一些節(jié)點(diǎn),以便HPA創(chuàng)建的Pod可以運(yùn)行。如果負(fù)載減少,則HPA將停止某些副本。結(jié)果,某些節(jié)點(diǎn)可能變得利用率過(guò)低或完全為空,然后CA將終止這些不需要的節(jié)點(diǎn)。

如何防止節(jié)點(diǎn)被CA刪除?

從CA 1.0開(kāi)始,節(jié)點(diǎn)可以打上以下標(biāo)簽:

"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"

可以使用 kubectl 將其添加到節(jié)點(diǎn)(或從節(jié)點(diǎn)刪除):

$ kubectl annotate nodecluster-autoscaler.kubernetes.io/scale-down-disabled=true

運(yùn)行Cluster Autoscaler  最佳實(shí)踐?

  • 不要直接修改屬于自動(dòng)伸縮節(jié)點(diǎn)組的節(jié)點(diǎn)。同一節(jié)點(diǎn)組中的所有節(jié)點(diǎn)應(yīng)該具有相同的容量、標(biāo)簽和在其上運(yùn)行的系統(tǒng)pod

  • Pod 聲明 requests 資源限制

  • 使用 PodDisruptionBudgets 可以防止突然刪除Pod(如果需要)

  • 再為節(jié)點(diǎn)池指定最小/最大設(shè)置之前,請(qǐng)檢查您的云提供商的配額是否足夠大

  • 不要運(yùn)行任何其他節(jié)點(diǎn)組自動(dòng)縮放器(尤其是來(lái)自您的云提供商的自動(dòng)縮放器)

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI