c创建一个命名空间
kubectl create namespace quota-mem-cpu-example
配额模板quota-mem-cpu.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: mem-cpu-demo
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
创建一个资源配额
kubectl create -f quota-mem-cpu.yaml --namespace=quota-mem-cpu-example
查看配额详情信息
kubectl get resourcequota mem-cpu-demo --namespace=quota-mem-cpu-example --output=yaml
POD 模板
apiVersion: v1
kind: Pod
metadata:
name: quota-mem-cpu-demo
spec:
containers:
- name: quota-mem-cpu-demo-ctr
image: nginx
resources:
limits:
memory: "800Mi"
cpu: "800m"
requests:
memory: "600Mi"
cpu: "400m"
创建分配指定资源配额命名空间的 POD
kubectl create -f quota-mem-cpu-pod.yaml --namespace=quota-mem-cpu-example
再次查看资源配额信息
kubectl get resourcequota mem-cpu-demo --namespace=quota-mem-cpu-example --output=yaml
再创建一个POD
apiVersion: v1
kind: Pod
metadata:
name: quota-mem-cpu-demo-2
spec:
containers:
- name: quota-mem-cpu-demo-2-ctr
image: redis
resources:
limits:
memory: "1Gi"
cpu: "800m"
requests:
memory: "700Mi"
cpu: "400m"
kubectl create -f quota-mem-cpu-pod-2.yaml --namespace=quota-mem-cpu-example
再创建一个请求内存700M的pod报错,限额请求内存1G 已经分配600M,再分配700M,资源超额!被禁止!
Error from server (Forbidden): error when creating "quota-mem-cpu-pod-2.yaml":
pods "quota-mem-cpu-demo-2" is forbidden: exceeded quota: mem-cpu-demo,
requested: requests.memory=700Mi,used: requests.memory=600Mi, limited: requests.memory=1Gi