怎么調(diào)整Kubernetes的CPU和內(nèi)存

本篇內(nèi)容介紹了“怎么調(diào)整Kubernetes的CPU和內(nèi)存”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

站在用戶的角度思考問題,與客戶深入溝通,找到茂南網(wǎng)站設(shè)計與茂南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋茂南地區(qū)。

在Kubernetes中分配和管理CPU和內(nèi)存資源可能很棘手,但也很容易。本文,我將向你展示什么是Kubernetes資源和限制以及如何管理它們。  
本文的目標(biāo)是簡單–如何幫助你快速調(diào)整項目中的Kubernetes資源信息,主要通過三種方式:  
1、為容器和 Pod 分配CPU和內(nèi)存資源  
2、Resources Quota: 限制namespace的資源消耗  
3、Limit Ranges:配置默認(rèn)的CPU請求和限制  

為容器和 Pod 分配CPU和內(nèi)存資源

下圖,解釋了Kubernetes資源的度量單位,資源狀態(tài)工作流以及如何使用資源限制。  

怎么調(diào)整Kubernetes的CPU和內(nèi)存

CPU和內(nèi)存單位

怎么調(diào)整Kubernetes的CPU和內(nèi)存

Kubernetes 中的一個 cpu 等于:  
1、1 AWS vCPU  
2、1 GCP Core  
3、1 Azure vCore  
4、1 Hyperthread 在帶有超線程的裸機(jī) Intel 處理器上  
以下,Deployment使用了內(nèi)存資源和CPU資源的請求和限制  
將CPU和內(nèi)存 請求 (request)和內(nèi)存 限制 (limit)分配給一個容器。  
我們保障容器擁有它請求數(shù)量的內(nèi)存,但不允許使用超過限制數(shù)量的CPU和內(nèi)存 。  
    
    apiVersion: apps/v1 
     
     kind: Deployment 
     
     metadata: 
     
     name: aks-application  
     
     spec: 
     
     replicas: 1 
     
     selector: 
     
     matchLabels: 
     
     app: aks-application 
     
     template: 
     
     metadata: 
     
     labels: 
     
     app: aks-application 
     
     spec: 
     
     containers: 
     
     - name: aks-application 
     
     image: hubname/aks-application-image:1.0.0  
     
     resources: 
     
     requests: 
     
     cpu: 100m  
     
     memory: 128Mi 
     
     limits: 
     
     cpu: 250m  
     
     memory: 256Mi
 
更詳細(xì)的信息和代碼段:  
  • 將內(nèi)存資源分配給容器和Pod
  • 將CPU資源分配給容器和Pod
  • Kubernetes最佳實踐資源要求和限制
  • 應(yīng)用程序開發(fā)人員在Azure Kubernetes Service(AKS)中管理資源的最佳實踐    

Resources Quota: 限制namespace的資源消耗

資源配額,通過 ResourceQuota 對象來定義,對每個namespace的資源消耗總量提供限制。它可以限制namespace中某種類型的對象的總數(shù)目上限,也可以限制命令空間中的 Pod 可以使用的計算資源的總上限。  

怎么調(diào)整Kubernetes的CPU和內(nèi)存

資源配額的工作方式如下:  
1、不同的團(tuán)隊可以在不同的namespace下工作,目前這是非約束性的,在未來的版本中可能會通過 ACL (Access Control List 訪問控制列表) 來實現(xiàn)強(qiáng)制性約束。  
2、集群管理員可以為每個namespace創(chuàng)建一個或多個 ResourceQuota 對象。  
3、當(dāng)用戶在namespace下創(chuàng)建資源(如 Pod、Service 等)時,Kubernetes 的配額系統(tǒng)會 跟蹤集群的資源使用情況,以確保使用的資源用量不超過 ResourceQuota 中定義的硬性資源限額。  
4、如果資源創(chuàng)建或者更新請求違反了配額約束,那么該請求會報錯(HTTP 403 FORBIDDEN), 并在消息中給出有可能違反的約束。  
5、如果namespace下的計算資源 (如 cpu 和 memory)的配額被啟用,則用戶必須為 這些資源設(shè)定請求值(request)和約束值(limit),否則配額系統(tǒng)將拒絕 Pod 的創(chuàng)建。提示: 可使用 LimitRanger 準(zhǔn)入控制器來為沒有設(shè)置計算資源需求的 Pod 設(shè)置默認(rèn)值。  

 
以下,是對持久卷聲明和namespace資源的配額定義。  
    
    apiVersion: v1 
     
     kind: ResourceQuota 
     
     metadata: 
     
     name: backend-storage-quota 
     
     spec: 
     
     hard: 
     
     persistentvolumeclaims: "2" 
     
     requests.storage: "1Gi"    
     
     -- 
     
     apiVersion: v1 
     
     kind: ResourceQuota 
     
     metadata: 
     
     name: backend-namespace-quota 
     
     spec: 
     
     hard: 
     
     request.cpu: 400m 
     
     request.memory: 9600Mi 
     
     limits.cpu: 1200m 
     
     limits.memory: 11600Mi
 
你可以使用該kubectl apply命令來設(shè)置namespace的配額限制。  
    
    kubectl apply -f resource-quota.yaml — namespace backend
 
如何使用配額的詳細(xì)說明,請參考
 
  • https://kubernetes.io/docs/concepts/policy/resource-quotas/

Limit Ranges:配置默認(rèn)的CPU請求和限制

如果你的namespace有資源配額,那么默認(rèn)內(nèi)存限制是很有幫助的。  

怎么調(diào)整Kubernetes的CPU和內(nèi)存

將 LimitRange 添加到namespace,不僅會限制cpu和內(nèi)存,還會為存儲請求大小強(qiáng)制設(shè)置最小值和最大值。存儲是通過 PersistentVolumeClaim 來發(fā)起請求的。執(zhí)行限制范圍控制的準(zhǔn)入控制器會拒絕任何高于或低于管理員所設(shè)閾值的 PVC。  
    
    apiVersion: v1 
     
     kind: LimitRange 
     
     metadata: 
     
     name: backend-limit-range 
     
     spec: 
     
     limits: 
     
     - default: 
     
     memory: 110Mi 
     
     cpu: 500m 
     
     defaultRequest: 
     
     memory: 20Mi 
     
     cpu: 100m 
     
     type: Container 
     
     -- 
     
     apiVersion: v1 
     
     kind: LimitRange 
     
     metadata: 
     
     name: backend-storage-limits 
     
     spec: 
     
     limits: 
     
     - type: PersistentVolumeClaim 
     
     max: 
     
     storage: 5Gi 
     
     min: 
     
     storage: 2Gi
 
更詳細(xì)的信息和代碼段。  
  • 為namespace配置默認(rèn)的 CPU 請求和限制
  • 限制名稱空間的存儲使用量
  • Kubernetes中的 Limit Range    

工具:管理Kubernetes的CPU和內(nèi)存

  • Popeye 會掃描集群中是否存在與配置,資源和網(wǎng)絡(luò)漏洞有關(guān)的問題,并生成有關(guān)所有問題的詳細(xì)報告。
  • Goldilocks 掃描Pod中的資源限制,并使用建議的資源創(chuàng)建報告。
  • Kube-advisor 來自Azure團(tuán)隊的工具,可掃描容器中缺少的資源并限制請求。
  • K9s+benchmark 提供了一個命令行界面(CLI),使你可以輕松地管理,監(jiān)視甚至對 你喜歡的終端軟件中的集群進(jìn)行基準(zhǔn)測試
你還可以將這些工具與 Datadog, Grafana + Prometeus,Azure Monitor結(jié)合使用,以改善資源并限制監(jiān)視。  

總結(jié)

  1. 設(shè)置資源請求:獲取有關(guān)特定應(yīng)用程序/容器的CPU和內(nèi)存使用情況的信息。
  2. 設(shè)置資源限制:運行負(fù)載測試以檢測高負(fù)載下容器的CPU和內(nèi)存。
  3. 監(jiān)視容器的CPU和內(nèi)存使用情況。
  4. 監(jiān)視持久卷使用情況。
  5. 檢查是否可以使用Limit Range應(yīng)用資源限制
  6. 使用配額(不建議在生產(chǎn)環(huán)境中應(yīng)用配額)

“怎么調(diào)整Kubernetes的CPU和內(nèi)存”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當(dāng)前題目:怎么調(diào)整Kubernetes的CPU和內(nèi)存
轉(zhuǎn)載來源:http://muchs.cn/article38/jpihpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站維護(hù)做網(wǎng)站、建站公司服務(wù)器托管、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計