Kubernetes 无法设置LimitRange:禁止创建POD[最大cpu使用率为x,但限制为y..]

Kubernetes 无法设置LimitRange:禁止创建POD[最大cpu使用率为x,但限制为y..],kubernetes,Kubernetes,我的命名空间中有3个delpoyments。所有部署都没有为CPU或内存指定任何资源限制。我正在尝试使用LimitRange为该名称空间中的所有POD及其容器(现有和未来)设置默认的最小值和最大值。我已将LimitRange资源部署到名称空间,如下所述。但是,当我重新部署时,部署失败并出现错误(如下所示) 限制范围: apiVersion:“v1” 种类:“有限范围” 元数据: 名称:“核心资源限制” 名称空间:x 规格: 限制: -类型:“吊舱” 最大值: 中央处理器:1 内存:1Gi 最小

我的命名空间中有3个delpoyments。所有部署都没有为CPU或内存指定任何资源限制。我正在尝试使用LimitRange为该名称空间中的所有POD及其容器(现有和未来)设置默认的最小值和最大值。我已将LimitRange资源部署到名称空间,如下所述。但是,当我重新部署时,部署失败并出现错误(如下所示)

限制范围:

apiVersion:“v1” 种类:“有限范围” 元数据: 名称:“核心资源限制” 名称空间:x 规格: 限制: -类型:“吊舱” 最大值: 中央处理器:1 内存:1Gi 最小值: 中央处理器:2米 内存:50Mi -类型:“容器” 最大值: 中央处理器:1 内存:800英里 最小值: cpu:1m 内存:50Mi 违约: cpu:20m 内存:500Mi 默认请求: 中央处理器:10米 内存:400英里 maxLimitRequestRatio:
cpu:4查看错误消息,我想说您的Pod资源限制设置得高于LimitRange允许的范围。对正在讨论的确切Pod执行“kubectl编辑”,以确保没有设置限制。

查看错误消息,我想说您的Pod资源限制设置得高于LimitRange允许的范围。对所讨论的确切Pod进行“kubectl编辑”,以确保没有设置限制。

我想更详细地展开并解释此处可能存在的错误。让我们仔细研究一下:

  • 管理员在一个命名空间中创建一个
    LimitRange

  • 用户在命名空间中创建资源,如
    Pods
    Containers
    PersistentVolumeClaims

  • LimitRanger
    准入控制器对所有未设置计算资源需求的
    pod
    容器
    强制执行默认值和限制,并跟踪使用情况,以确保其不超过命名空间中任何
    LimitRange
    中定义的资源最小值、最大值和比率

  • 如果创建或更新违反
    LimitRange
    约束的资源(
    Pod
    Container
    PersistentVolumeClaim
    ),则对API服务器的请求将失败,HTTP状态代码403禁止,并显示一条解释已违反约束的消息

  • 如果在计算资源(如cpu和内存)的命名空间中激活了
    LimitRange
    ,则用户必须为这些值指定请求或限制。否则,系统可能会拒绝Pod创建

  • LimitRange
    验证仅在Pod许可阶段进行,而不是在运行
    Pod
    时进行

正如@FritzDuchardt已经提到的,错误消息明确指出限制配置错误或执行错误。这就引出了两种方法:

  • 检查是否在
    Pod
    级别设置了任何其他限制(
    kubectl edit Pod

  • 在一个名称空间中,一个
    Pod
    容器
    可以消耗名称空间定义的CPU和内存。检查是否使用
    kubectl descripe quota
    设置了资源配额。如果名称空间的总限制小于吊舱/容器的限制之和,则可能存在资源争用。在这种情况下,将不会创建容器或吊舱

下面是一个例子,它代表了与您所经历的相同的结果

我希望这能更详细地解释这个话题和潜在的问题。
请让我知道这是否有帮助。

我想详细介绍一下这里可能出现的问题。让我们仔细研究一下:

  • 管理员在一个命名空间中创建一个
    LimitRange

  • 用户在命名空间中创建资源,如
    Pods
    Containers
    PersistentVolumeClaims

  • LimitRanger
    准入控制器对所有未设置计算资源需求的
    pod
    容器
    强制执行默认值和限制,并跟踪使用情况,以确保其不超过命名空间中任何
    LimitRange
    中定义的资源最小值、最大值和比率

  • 如果创建或更新违反
    LimitRange
    约束的资源(
    Pod
    Container
    PersistentVolumeClaim
    ),则对API服务器的请求将失败,HTTP状态代码403禁止,并显示一条解释已违反约束的消息

  • 如果在计算资源(如cpu和内存)的命名空间中激活了
    LimitRange
    ,则用户必须为这些值指定请求或限制。否则,系统可能会拒绝Pod创建

  • LimitRange
    验证仅在Pod许可阶段进行,而不是在运行
    Pod
    时进行

正如@FritzDuchardt已经提到的,错误消息明确指出限制配置错误或执行错误。这就引出了两种方法:

  • 检查是否在
    Pod
    级别设置了任何其他限制(
    kubectl edit Pod

  • 在一个名称空间中,一个
    Pod
    容器
    可以消耗名称空间定义的CPU和内存。检查是否使用
    kubectl descripe quota
    设置了资源配额。如果名称空间的总限制小于吊舱/容器的限制之和,则可能存在资源争用。在这种情况下,将不会创建容器或吊舱

下面是一个例子,它代表了与您所经历的相同的结果

我希望这能解释这个话题和问题