您的位置:首页 > 运维架构 > Kubernetes

kubernetes调度之资源配额示例

2019-06-16 15:30 771 查看

系列目录

前面说过,资源配额限制在指定名称空间下,对资源对象数量和特定类型的资源的限制,你可以在

ResourceQuota
中指定配额

创建名称空间

我们创建一个新的名称空间来演示

kubectl create namespace quota-object-example

创建资源配额

以下是资源配额对象的配置

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
创建配额对象

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

查看资源配额详细信息

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
类型的服务

创建一个
PersistentVolumeClaim

以下是创建

PersistentVolumeClaim
对象的文件

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

通过命令创建它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: