kubernetes資源對象--ResourceQuotas

概念

Resource Quotas(資源配額,簡稱quota)是對namespace進行資源配額,限制資源使用的一種策略。 K8S是一個多用戶架構,當多用戶或者團隊共享一個K8S系統時,SA使用quota防止用戶(基於namespace的)的資源搶佔,定義好資源分配策略。

Quota應用在Namespace上,默認情況下,沒有Resource Quota的,需要另外創建Quota,並且每個Namespace最多只能有一個Quota對象。

限額資源類型

計算資源:limits.cpu、requests.cpu、limits.memory、requests.memory
存儲資源,包括存儲資源的總量以及指定storage class的總量
 requests.storage:存儲資源總量,如500Gi
 persistentvolumeclaims:pvc的個數
 .storageclass.storage.k8s.io/requests.storage
 .storageclass.storage.k8s.io/persistentvolumeclaims
對象數,即可創建的對象的個數
 pods,replicationcontrollers,configmaps,secrets,persistentvolumeclaims,services,services.loadbalancers,services.nodeports

使用注意實現

在使用前需確認apiserver的配置文件中的KUBE_ADMISSION_CONTROL是否有ResourceQuota,如果沒有需要添加並重啓apiserver。
Quota依賴於資源管理器,可以使用資源對象limits或者在創建資源對象是爲pod設置資源限制(resources),如果不設置,資源對象無法創建。
當該namespace中的任意個額度達到預設Quota時,將無法創建資源對象。

例子

比如K8S系統共有20核CPU和32GB內存,分配給lykops用戶5核CPU和16GB,分配給lykchat租戶5核CPU 和8GB,預留10核CPU和8GB內存。這樣,用戶中所使用的CPU和內存的總和不能超過指定的資源配額,促使其更合理地使用資源。

kubectl delete -f resourcequota.yaml cat << EOF > resourcequota.yaml apiVersion: v1 kind: ResourceQuota metadata:
 namespace: lykops name: lykops labels:
 project: lykops app: resourcequota version: v1 spec:
 hard:
 pods: 50
 requests.cpu: 0.5 requests.memory: 512Mi limits.cpu: 5
 limits.memory: 16Gi configmaps: 20
 persistentvolumeclaims: 20
 replicationcontrollers: 20
 secrets: 20
 services: 50
EOF kubectl create -f resourcequota.yaml
本文轉自開源中國-kubernetes資源對象--ResourceQuotas
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章