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
相关文章
相关标签/搜索