kubernetes調度之資源配額示例

系列目錄html

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

建立名稱空間

咱們建立一個新的名稱空間來演示api

kubectl create namespace quota-object-example

建立資源配額

如下是資源配額對象的配置app

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建立配額對象spa

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

查看資源配額詳細信息code

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類型的服務htm

建立一個PersistentVolumeClaim

如下是建立PersistentVolumeClaim對象的文件對象

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

經過命令建立它blog

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
相關文章
相關標籤/搜索