W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵(lì)
本文討論如何為 API 對象配置配額,包括 PersistentVolumeClaim 和 Service。 配額限制了可以在命名空間中創(chuàng)建的特定類型對象的數(shù)量。 你可以在 ResourceQuota 對象中指定配額。
你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:
要檢查版本,請輸入 ?kubectl version
?。
創(chuàng)建一個(gè)命名空間以便本例中創(chuàng)建的資源和集群中的其余部分相隔離。
kubectl create namespace quota-object-example
下面是一個(gè) ResourceQuota 對象的配置文件
apiVersion: v1
kind: ResourceQuota
metadata:
name: object-quota-demo
spec:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
創(chuàng)建 ResourceQuota:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects.yaml --namespace=quota-object-example
查看 ResourceQuota 的詳細(xì)信息:
kubectl get resourcequota object-quota-demo --namespace=quota-object-example --output=yaml
輸出結(jié)果表明在 quota-object-example 命名空間中,至多只能有一個(gè) PersistentVolumeClaim, 最多兩個(gè) LoadBalancer 類型的服務(wù),不能有 NodePort 類型的服務(wù)。
status:
hard:
persistentvolumeclaims: "1"
services.loadbalancers: "2"
services.nodeports: "0"
used:
persistentvolumeclaims: "0"
services.loadbalancers: "0"
services.nodeports: "0"
下面是一個(gè) PersistentVolumeClaim 對象的配置文件:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
創(chuàng)建 PersistentVolumeClaim:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc.yaml --namespace=quota-object-example
確認(rèn)已創(chuàng)建完 PersistentVolumeClaim:
kubectl get persistentvolumeclaims --namespace=quota-object-example
輸出信息表明 PersistentVolumeClaim 存在并且處于 Pending 狀態(tài):
NAME STATUS
pvc-quota-demo Pending
下面是第二個(gè) PersistentVolumeClaim 的配置文件:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-quota-demo-2
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 4Gi
嘗試創(chuàng)建第二個(gè) PersistentVolumeClaim:
kubectl apply -f https://k8s.io/examples/admin/resource/quota-objects-pvc-2.yaml --namespace=quota-object-example
輸出信息表明第二個(gè) PersistentVolumeClaim 沒有創(chuàng)建成功,因?yàn)檫@會超出命名空間的配額。
persistentvolumeclaims "pvc-quota-demo-2" is forbidden:
exceeded quota: object-quota-demo, requested: persistentvolumeclaims=1,
used: persistentvolumeclaims=1, limited: persistentvolumeclaims=1
下面這些字符串可被用來標(biāo)識那些能被配額限制的 API 資源:
字符串 | API 對象 |
---|---|
"pods" | Pod |
"services" | Service |
"replicationcontrollers" | ReplicationController |
"resourcequotas" | ResourceQuota |
"secrets" | Secret |
"configmaps" | ConfigMap |
"persistentvolumeclaims" | PersistentVolumeClaim |
"services.nodeports" | NodePort 類型的 Service |
"services.loadbalancers" | LoadBalancer 類型的 Service |
刪除你的命名空間:
kubectl delete namespace quota-object-example
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: