14.3. 限制范围


限制范围由 LimitRange 对象定义,枚举 一个项目中的计算资源约束,位于 Pod、容器、镜像、镜像流和持久性卷声明级别,并指定 pod、容器、镜像、镜像流或持久性卷声明可消耗的资源数量。???

所有资源创建和修改请求都会针对项目中的每个 LimitRange 对象进行评估。如果资源违反了任何限制,则拒绝该资源。如果资源没有设置显式值,并且约束支持默认值,则默认值将应用到资源。

注意

限制范围由集群管理员设置,并可限定到给定项目。

14.3.1. 查看限制范围

您可以通过在 Web 控制台中导航到项目的 Quota 页面来查看项目中定义的任何限值范围。

您还可以使用 CLI 查看限制范围详情:

  1. 首先,获取项目中定义的限值范围列表。例如,对于名为 demoproject 的项目:

    $ oc get limits -n demoproject
    NAME              AGE
    resource-limits   6d
  2. 然后,描述您感兴趣的限制范围,如 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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.