k8s pod资源限制requests和limits

环境:kubernetes v1.18.16

k8s 资源单位介绍

CPU1 core = 1000 milli core(毫核);50m相当于0.05core,最小单位1m;
内存M 1000进制 129M字节;Mi 1024进制

pod资源限额设置:

spec:
      containers:
        - name: [容器名称]
          image: [容器镜像]
          imagePullPolicy: IfNotPresent
          resources:
            requests: 
              cpu: 10m
              memory: 10Mi
            limits:
              cpu: '1'
              memory: 1000Mi

requests:最低配额,保证被调度的节点上至少有的资源配额
limits: 资源限制,容器可以分配到的最大资源配额

pod qosClass介绍

qosClass 表示服务质量类型(Quality of Service)。其值由pod请求的内存和cpu确定的,有三种类型:Guaranteed,Burstable 和 BestEffort。当node资源不足而驱逐pod时优先级不同:BestEffort→Burstable→Guaranteed。最先驱逐BestEffort,然后Burstable,最后Guaranteed。pod没有配置资源限制的时默认为BestEffort

kubectl get  pod [pod名称] -o yml podqosClass类型

输出中qosClass字段显示当前

QoS Classes分类

Guranteed:pod中所有Container的所有Resource的limit和request都相等且不为0,则这个Pod的QoS Class就是Guaranteed。注意,如果一个容器只指明了limit,而未指明request,则表明request的值等于limit的值。
Burstable:pod中至少有一个容器设置CPU或内存资源的requests属性。
BestEffort:Pod中没有任何一个容器设置了requests或limits属性。

node资源紧缺时pod驱逐机制

Guaranteed > Burstable > BestEffort
参考:http://t.zoukankan.com/peitianwang-p-11588003.html

你可能感兴趣的:(k8s pod资源限制requests和limits)