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

猜你喜欢

转载自blog.csdn.net/qq_28451255/article/details/80549317
今日推荐