如何實現(xiàn)K8S Cluster Autoscaler 集群自動伸縮,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
為鹽津等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及鹽津網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、網(wǎng)站制作、鹽津網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Cluster Autoscaler (CA)是一個獨立程序,是用來彈性伸縮kubernetes集群的。在使用kubernetes集群經(jīng)常問到的一個問題是,應該保持多大的節(jié)點規(guī)模來滿足應用需求呢?cluster-autoscaler 出現(xiàn)解決了這個問題,它可以自動根據(jù)部署應用所請求資源量來動態(tài)的伸縮集群。
項目地址:https://github.com/kubernetes/autoscaler
在以下情況下,集群自動擴容或者縮放:
擴容:由于資源不足,某些Pod無法在任何當前節(jié)點上進行調度
縮容: Node節(jié)點資源利用率較低時,且此node節(jié)點上存在的pod都能被重新調度到其他node節(jié)點上運行
節(jié)點上有pod被 PodDisruptionBudget 控制器限制。
節(jié)點上有命名空間是 kube-system 的pods。
節(jié)點上的pod不是被控制器創(chuàng)建,例如不是被deployment, replica set, job, stateful set創(chuàng)建。
節(jié)點上有pod使用了本地存儲
節(jié)點上pod驅逐后無處可去,即沒有其他node能調度這個pod
節(jié)點有注解:"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"(在CA 1.0.3或更高版本中受支持)
Horizontal Pod Autoscaler 會根據(jù)當前CPU負載更改部署或副本集的副本數(shù)。如果負載增加,則HPA將創(chuàng)建新的副本,集群中可能有足夠的空間,也可能沒有足夠的空間。如果沒有足夠的資源,CA將嘗試啟動一些節(jié)點,以便HPA創(chuàng)建的Pod可以運行。如果負載減少,則HPA將停止某些副本。結果,某些節(jié)點可能變得利用率過低或完全為空,然后CA將終止這些不需要的節(jié)點。
從CA 1.0開始,節(jié)點可以打上以下標簽:
"cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"
可以使用 kubectl 將其添加到節(jié)點(或從節(jié)點刪除):
$ kubectl annotate node
不要直接修改屬于自動伸縮節(jié)點組的節(jié)點。同一節(jié)點組中的所有節(jié)點應該具有相同的容量、標簽和在其上運行的系統(tǒng)pod
Pod 聲明 requests 資源限制
使用 PodDisruptionBudgets 可以防止突然刪除Pod(如果需要)
再為節(jié)點池指定最小/最大設置之前,請檢查您的云提供商的配額是否足夠大
不要運行任何其他節(jié)點組自動縮放器(尤其是來自您的云提供商的自動縮放器)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。