設定 API 物件的配額
此頁面說明如何為 API 物件配置配額,包括 PersistentVolumeClaims 和 Services。配額限制在命名空間中可以建立的特定類型的物件數量。您可以在 ResourceQuota 物件中指定配額。
準備開始
您需要有一個 Kubernetes 叢集,並且必須配置 kubectl 命令列工具以與您的叢集通訊。建議在至少有兩個節點且這些節點不充當控制平面主機的叢集上執行本教學課程。如果您還沒有叢集,可以使用 minikube 建立一個,或者您可以使用以下 Kubernetes 操場之一
若要檢查版本,請輸入kubectl version
。建立命名空間
建立命名空間,以便將您在此練習中建立的資源與叢集的其餘部分隔離。
kubectl create namespace quota-object-example
建立 ResourceQuota
以下是 ResourceQuota 物件的組態檔
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-quota-demo
spec:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
建立 ResourceQuota
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects.yaml --namespace=quota-object-example
檢視關於 ResourceQuota 的詳細資訊
kubectl get resourcequota object-quota-demo --namespace=quota-object-example --output=yaml
輸出顯示在 quota-object-example 命名空間中,最多可以有一個 PersistentVolumeClaim、最多兩個 LoadBalancer 類型的 Service,以及沒有 NodePort 類型的 Service。
status:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
used:
persistentvolumeclaims: "0"
services.loadbalancers: "0"
services.nodeports: "0"
建立 PersistentVolumeClaim
以下是 PersistentVolumeClaim 物件的組態檔
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
建立 PersistentVolumeClaim
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc.yaml --namespace=quota-object-example
驗證 PersistentVolumeClaim 是否已建立
kubectl get persistentvolumeclaims --namespace=quota-object-example
輸出顯示 PersistentVolumeClaim 存在且狀態為 Pending
NAME STATUS
pvc-quota-demo Pending
嘗試建立第二個 PersistentVolumeClaim
以下是第二個 PersistentVolumeClaim 的組態檔
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo-2
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
嘗試建立第二個 PersistentVolumeClaim
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc-2.yaml --namespace=quota-object-example
輸出顯示第二個 PersistentVolumeClaim 未建立,因為它會超出命名空間的配額。
persistentvolumeclaims "pvc-quota-demo-2" is forbidden:
exceeded quota: object-quota-demo, requested: persistentvolumeclaims=1,
used: persistentvolumeclaims=1, limited: persistentvolumeclaims=1
注意事項
以下是用於識別可以受配額限制的 API 資源的字串
字串 | API 物件 |
---|---|
"pods" | Pod |
"services" | 服務 |
"replicationcontrollers" | ReplicationController |
"resourcequotas" | ResourceQuota |
"secrets" | Secret |
"configmaps" | ConfigMap |
"persistentvolumeclaims" | PersistentVolumeClaim |
"services.nodeports" | NodePort 類型的 Service |
"services.loadbalancers" | LoadBalancer 類型的 Service |
清除
刪除您的命名空間
kubectl delete namespace quota-object-example
下一步
適用於叢集管理員
適用於應用程式開發人員
上次修改時間:2024 年 10 月 30 日下午 5:17 PST:KEP 2837: Pod 層級資源 Alpha (0374213f57)