# 限定 Limit/Request 比例
本文讨论了如何使用 LimitRange 在名称空间中限制 Limits/Requests 的比例。如果指定了 LimitRange 对象的 spec.limits.maxLimitRequestRatio
字段,名称空间中的 Pod/容器的 request 和 limit 都不能为 0,且 limit 除以 request 的结果必须小于或等于 LimitRange 的 spec.limits.maxLimitRequestRatio
下面的例子中 LimitRange
限定了名称空间中任何 Pod 的最大内存限定(limit)不能超过最小内存请求(request)的两倍:
apiVersion: v1
kind: LimitRange
metadata:
name: limit-memory-ratio-pod
spec:
limits:
- maxLimitRequestRatio:
memory: 2
type: Pod
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
执行命令以创建该 LimitRange:
kubectl create -f https://kuboard.cn/statics/learning/policy/lr-ratio-limit-range.yaml -n limitrange-demo
1执行命令以查看创建结果:
kubectl describe limitrange/limit-memory-ratio-pod -n limitrange-demo
1输出结果如下所示:
Name: limit-memory-ratio-pod Namespace: limitrange-demo Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio ---- -------- --- --- --------------- ------------- ----------------------- Pod memory - - - - 2
1
2
3
4
5此时,如果我们创建一个 Pod 包含如下属性
requests.memory=100Mi
和limits.memory=300Mi
:apiVersion: v1 kind: Pod metadata: name: busybox3 spec: containers: - name: busybox-cnt01 image: busybox resources: limits: memory: "300Mi" requests: memory: "100Mi"
1
2
3
4
5
6
7
8
9
10
11
12
13执行命令以创建该 Pod:
kubectl apply -f https://kuboard.cn/statics/learning/policy/lr-ratio-pod.yaml -n limitrange-demo
1由于该 Pod 的内存限制请求比例为
3
,超过了 LimitRange 中定义的2
,该 Pod 将不能创建成功:Error from server (Forbidden): error when creating "lr-ratio-pod.yaml": pods "busybox3" is forbidden: memory max limit to request ratio per Pod is 2, but provided ratio is 3.000000.
1
免费答疑
微信群
微信扫码 进群发广告者死全家...
赞赏
微信扫码