pmliang avatar

kubernetes中LimitRange的理解

pmliang

Published: 02 Jun 2018 › Updated: 02 Jun 2018kubernetes中LimitRange的理解

kubernetes中LimitRange的理解

kubernetes中LimitRange的理解

今天学习了LimitRange,大概总结一下LimitRange的用法,LimitRange是在podcontainer级别的资源限制,先看以下的例子:

apiVersion: v1
kind: LimitRange
metadata:
  name: mylimits
spec:
  limits:
  - max:
      cpu: "4"
      memory: 2Gi
    min:
      cpu: 200m
      memory: 6Mi
    maxLimitRequestRatio:
      cpu: 3
      memory: 2
    type: Pod
  - default:
      cpu: 300m
      memory: 200Mi
    defaultRequest:
      cpu: 200m
      memory: 100Mi
    max:
      cpu: "2"
      memory: 1Gi
    min:
      cpu: 100m
      memory: 3Mi
    maxLimitRequestRatio:
      cpu: 5
      memory: 4
    type: Container
  • pod部分:
  1. max表示pod中所有容器资源的Limit值和的上限,也就是整个pod资源的最大Limit,如果pod定义中的Limit值大于LimitRange中的值,则pod无法成功创建。
  2. min表示pod中所有容器资源请求总和的下限,也就是所有容器request的资源总和不能小于min中的值,否则pod无法成功创建。
  3. maxLimitRequestRatio表示pod中所有容器资源请求的Limit值和request值比值的上限,例如该podcpuLimit值为3,而request为0.5,此时比值为6,创建pod将会失败。
  • container部分
  1. container的部分,maxminmaxLimitRequestRatio的含义和pod中的类似,只不过是针对单个的容器而言。下面说明几个情况:

如果container设置了maxpod中的容器必须设置limit,如果未设置,则使用defaultlimt的值,如果defaultlimit也没有设置,则无法成功创建

如果设置了containermin,创建容器的时候必须设置request的值,如果没有设置,则使用defaultrequest,如果没有defaultrequest,则默认等于容器的limit值,如果limit也没有,启动就会报错

  1. defaultrequestdefaultlimit则是默认值,注意:pod级别没有这两项设置

limitrange应用于namespace就生效了,例如:

kubectl create -f limitrange-example.yaml --namespace=namespace-example

Leave kubernetes中LimitRange的理解 to:

Written by

Read more #kubernetes posts


Best Posts From pmliang

We have not curated any of pmliang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From pmliang