14.3. 限制范围
限制范围由 LimitRange
对象定义,枚举 一个项目中的计算资源约束,位于 Pod、容器、镜像、镜像流和持久性卷声明级别,并指定 pod、容器、镜像、镜像流或持久性卷声明可消耗的资源数量。???
所有资源创建和修改请求都会针对项目中的每个 LimitRange
对象进行评估。如果资源违反了任何限制,则拒绝该资源。如果资源没有设置显式值,并且约束支持默认值,则默认值将应用到资源。
注意
限制范围由集群管理员设置,并可限定到给定项目。
14.3.1. 查看限制范围
您可以通过在 Web 控制台中导航到项目的 Quota 页面来查看项目中定义的任何限值范围。
您还可以使用 CLI 查看限制范围详情:
首先,获取项目中定义的限值范围列表。例如,对于名为 demoproject 的项目:
$ oc get limits -n demoproject NAME AGE resource-limits 6d
然后,描述您感兴趣的限制范围,如 resource-limits 限制范围:
$ oc describe limits resource-limits -n demoproject Name: resource-limits Namespace: demoproject Type Resource Min Max Default Request Default Limit Max Limit/Request Ratio ---- -------- --- --- --------------- ------------- ----------------------- Pod cpu 200m 2 - - - Pod memory 6Mi 1Gi - - - Container cpu 100m 2 200m 300m 10 Container memory 4Mi 1Gi 100Mi 200Mi - openshift.io/Image storage - 1Gi - - - openshift.io/ImageStream openshift.io/image - 12 - - - openshift.io/ImageStream openshift.io/image-tags - 10 - - -
通过在对象中运行 oc export
来查看完整的限制范围定义。下面显示了一个限制范围定义示例:
核心限制范围对象定义
apiVersion: "v1" kind: "LimitRange" metadata: name: "core-resource-limits" 1 spec: limits: - type: "Pod" max: cpu: "2" 2 memory: "1Gi" 3 min: cpu: "200m" 4 memory: "6Mi" 5 - type: "Container" max: cpu: "2" 6 memory: "1Gi" 7 min: cpu: "100m" 8 memory: "4Mi" 9 default: cpu: "300m" 10 memory: "200Mi" 11 defaultRequest: cpu: "200m" 12 memory: "100Mi" 13 maxLimitRequestRatio: cpu: "10" 14
- 1
- 限制范围对象的名称。
- 2
- pod 可在所有容器间请求的最大 CPU 量。
- 3
- pod 可在所有容器间请求的最大内存量。
- 4
- pod 可在所有容器间请求的最小 CPU 量。
- 5
- pod 可在所有容器间请求的最小内存量。
- 6
- pod 中单个容器可以请求的最大 CPU 量。
- 7
- pod 中单个容器可以请求的最大内存量。
- 8
- pod 中单个容器可以请求的最小 CPU 量。
- 9
- pod 中单个容器可以请求的最小内存量。
- 10
- 如果未指定,容器使用的默认 CPU 量会被限制。
- 11
- 如果未指定,容器使用的默认内存量。
- 12
- 如果未指定,容器将请求使用的默认 CPU 量。
- 13
- 如果未指定,容器将请求使用的默认内存量。
- 14
- 容器可以作为与请求限制的比率的最大 CPU 突发量。
如需有关如何测量 CPU 和内存的更多信息,请参阅 Compute Resources。