為命名空間配置 Pod 配額
限制您可以在命名空間中建立多少個 Pod。
本頁說明如何為命名空間中可以執行的 Pod 總數設定配額。命名空間。您在 ResourceQuota 物件中指定配額。
準備開始
您需要有一個 Kubernetes 叢集,而且 kubectl 命令列工具必須配置為與您的叢集通訊。建議在至少有兩個節點且節點不充當控制平面主機的叢集上執行本教學課程。如果您還沒有叢集,可以使用 minikube 建立一個,也可以使用這些 Kubernetes 實驗環境之一
您必須具有在叢集中建立命名空間的存取權。
建立命名空間
建立命名空間,以便將您在此練習中建立的資源與叢集的其餘部分隔離。
kubectl create namespace quota-pod-example
建立 ResourceQuota
以下是 ResourceQuota 的範例資訊清單
apiVersion: v1
kind: ResourceQuota
metadata:
name: pod-demo
spec:
hard:
pods: "2"
建立 ResourceQuota
kubectl apply -f https://k8s.io/examples/admin/resource/quota-pod.yaml --namespace=quota-pod-example
檢視有關 ResourceQuota 的詳細資訊
kubectl get resourcequota pod-demo --namespace=quota-pod-example --output=yaml
輸出顯示命名空間有兩個 Pod 的配額,而且目前沒有 Pod;也就是說,沒有使用任何配額。
spec:
hard:
pods: "2"
status:
hard:
pods: "2"
used:
pods: "0"
以下是 Deployment 的範例資訊清單
apiVersion: apps/v1
kind: Deployment
metadata:
name: pod-quota-demo
spec:
selector:
matchLabels:
purpose: quota-demo
replicas: 3
template:
metadata:
labels:
purpose: quota-demo
spec:
containers:
- name: pod-quota-demo
image: nginx
在該 Manifest 檔案中,replicas: 3
告訴 Kubernetes 嘗試建立三個新的 Pod,全部都執行相同的應用程式。
建立 Deployment
kubectl apply -f https://k8s.io/examples/admin/resource/quota-pod-deployment.yaml --namespace=quota-pod-example
檢視 Deployment 的詳細資訊
kubectl get deployment pod-quota-demo --namespace=quota-pod-example --output=yaml
輸出顯示即使 Deployment 指定了三個副本,但由於您先前定義的配額,只建立了兩個 Pod。
spec:
...
replicas: 3
...
status:
availableReplicas: 2
...
lastUpdateTime: 2021-04-02T20:57:05Z
message: 'unable to create pods: pods "pod-quota-demo-1650323038-" is forbidden:
exceeded quota: pod-demo, requested: pods=1, used: pods=2, limited: pods=2'
資源的選擇
在這個任務中,您定義了一個 ResourceQuota 來限制 Pod 的總數,但您也可以限制其他種類物件的總數。例如,您可能會決定限制在單一命名空間中可以存在多少個 CronJob。
清理
刪除您的命名空間
kubectl delete namespace quota-pod-example
接下來是什麼
給叢集管理員
給應用程式開發人員
上次修改時間為 2024 年 10 月 30 日下午 5:17 PST:KEP 2837: Pod Level Resources Alpha (0374213f57)