kubernetes調度之資源配額示例


系列目錄

前面說過,資源配額限制在指定名稱空間下,對資源對象數量和特定類型的資源的限制,你可以在 ResourceQuota中指定配額

創建名稱空間

我們創建一個新的名稱空間來演示

kubectl create namespace quota-object-example

創建資源配額

以下是資源配額對象的配置

admin/resource/quota-objects.yaml 

apiVersion: v1
kind: ResourceQuota
metadata:
  name: object-quota-demo
spec:
  hard:
    persistentvolumeclaims: "1"
    services.loadbalancers: "2"
    services.nodeports: "0"

通過kubectl apply創建配額對象

kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects.yaml --namespace=quota-object-example

查看資源配額詳細信息

kubectl get resourcequota object-quota-demo --namespace=quota-object-example --output=yaml
status:
  hard:
    persistentvolumeclaims: "1"
    services.loadbalancers: "2"
    services.nodeports: "0"
  used:
    persistentvolumeclaims: "0"
    services.loadbalancers: "0"
    services.nodeports: "0"

輸出信息顯示,在quota-object-example名稱空間下,只允許最多有一個PersistentVolumeClaim,最多有兩個LoadBalancer類型的服務,並且不允許有NodePort類型的服務

創建一個PersistentVolumeClaim

以下是創建PersistentVolumeClaim對象的文件

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-quota-demo
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

通過命令創建它

kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc.yaml --namespace=quota-object-example

確認已經創建:

kubectl get `persistentvolumeclaims` --namespace=quota-object-example
NAME             STATUS
pvc-quota-demo   Pending

輸出信息顯示persistentvolumeclaims對象已經創建並且狀態為pending

下面嘗試再創建一個PersistentVolumeClaim

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-quota-demo-2
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 4Gi

執行創建命令

kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc-2.yaml --namespace=quota-object-example
persistentvolumeclaims "pvc-quota-demo-2" is forbidden:
exceeded quota: object-quota-demo, requested: persistentvolumeclaims=1,
used: persistentvolumeclaims=1, limited: persistentvolumeclaims=1

通過輸出信息可以看到,第二個persistantPersistentVolumeClaim沒有被創建,因為超過了資源配額

注:以下字符串類型可以被用來可以被資源配額使用

字符串 API 對象
"pods" Pod
"services Service
"replicationcontrollers" ReplicationController
"resourcequotas" ResourceQuota
"secrets" Secret
"configmaps" ConfigMap
"persistentvolumeclaims" PersistentVolumeClaim
"services.nodeports" Service of type NodePort
"services.loadbalancers" Service of type LoadBalancer

刪除資源配額

kubectl delete namespace quota-object-example


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM