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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章