您好,登錄后才能下訂單哦!
本篇文章為大家展示了Kubernetes設計與實現中ResourceQuota的概述是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
ResourceQuota
是Kubernetes
提供的一種用于限制資源配額的對象,集群管理員可以為每個namespace
創建ResourceQuota
對象來限定特定類型資源的最大使用額度,從而可以更精準、更合理地分配集群資源,避免多個namespace
中的資源爭搶共享的集群資源。
實際應用場景中,經常出現多用戶或者多團隊共用同一個集群的情況,管理員往往會為不同用戶或團隊分配不同的namespace
,從而將彼此隔離,但namespace
只能做到邏輯上的隔離,多個namespace
中的應用仍然會共享集群的硬件資源,比如CPU
、內存和存儲等,如果某個namespace
下的應用大量消耗這些共享資源,那么勢必會影響其他namespace
下的的應用。
ResourceQuota
正是針對這種問題而提供的一個解決方案。例如,用戶A
和B
共享某個含有16核CPU以及32G內存資源的集群,并且用戶A
和B
分別使用namespace-a
和namespace-b
,那么管理員可以分別在namespace-a
和namespace-b
中創建一個ResourceQuota
對象,并指定CPU和內存配額(比如平分集群資源),那么用戶A
和B
后續創建的應用資源總消耗量將不會超過該配額,如果一旦超過該配額,Kubernetes
將拒絕創建新的應用。
若要啟用ResourceQuota
功能,需要把字符串“ResourceQuota”加到kube-apiserver
的--enable-admission-plugins
參數列表中。比如:
# kube-apiserver <other parameters> --enable-admission-plugins="ResourceQuota,<other plugins>"
在絕大多數Kubernetes
發行版中,ResourceQuota
功能都是默認開啟的。
一個簡單的ResourceQuota
配置,如下所示:
apiVersion: v1 kind: ResourceQuota metadata: name: pod-count namespace: default spec: hard: pods: "0"
這份配置將在名為default
的namespace
中創建一個ResourceQuota
對象,該對象將確保在該namespace
中“禁止”創建Pod
對象。其主要配置如下:
metadata.namespace
:ResourceQuota
對象所屬的namespace
,也是該對象作用的namespace
;
spec.hard
:指定硬性配額列表;
spec.hard.pods
:為Pod
對象個數設置配額;
ResourceQuota
還支持其他更豐富的配置,比如支持對特性狀態的資源實施限額、對特定優先級的資源實施限額等,這部分內容我們將在后緒的章節中陸續介紹。
ResourceQuota
支持為多種類型的資源設置限額:
計算類資源,比如CPU、內存等;
擴展類資源,比如GPU;
存儲類資源,比如持久卷;
除了這些資源類型以外,還支持限定對象個數,這些對象包括:
configmaps
persistentvolumeclaims
pods
replicationcontrollers
resourcequotas
services
services.loadbalancers
services.nodeports
secrets
上述內容就是Kubernetes設計與實現中ResourceQuota的概述是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。