【问题标题】:How pod limits resource on kubernetes enforced when the pod exceed limits after pods is created ?在创建 pod 后 pod 超出限制时,pod 如何限制 kubernetes 上的资源?
【发布时间】:2026-02-09 07:20:04
【问题描述】:

我像这样在 kubernetes api 服务器上为 pod 创建了限制

apiVersion: v1
kind: LimitRange
metadata:
 name: limits
spec:
 limits:
  - default:
     cpu: 100m
     memory: 512Mi
    max:
     memory: 1024Mi
    type: pod

如果我理解正确,如果在创建 pod 时 pod 超出了用户定义的限制资源,kubernetes 将拒绝 pod。 因此,我尝试创建一个通过资源限制的新 pod,然后尝试消耗达到最大限制资源的资源,但它对 pod 没有任何影响。 LimitsRanger 和 ResourceQuota 插件是否涵盖在这种情况下,如果不是,我如何在资源 pod 已经创建后限制它?

【问题讨论】:

    标签: resources kubernetes


    【解决方案1】:

    LimitRange 是准入控制的一部分;正如你所说,一旦 Pod 运行,它就没有任何作用。要限制运行时资源消耗,请使用 Container 中的 Resources 字段。

    【讨论】:

    • 谢谢你的回复,你能指导我在哪里配置资源文件,是docker属性还是kubernetes。
    • 你的回答是正确的,但太简短了,所以我用我的初学者回答来解释你的解决方案的更多细节。
    【解决方案2】:

    DavidO 的答案是正确的,所以我只想向与我面临同样问题的其他人解释解决此问题的解决方案。

    你可以通过像这样添加资源字段来限制运行的 pod

    "resources": {
              "limits": {
                "cpu": "100m",
                "memory": "50Mi"
               }
    }
    

    在 yaml 或 json 文件中的容器属性数组中,然后我只需通过文件创建 rc 和 pods

    $ kubectl create -f filename.yaml
    

    仅此而已 信用:大卫O

    【讨论】:

      最近更新 更多