環(huán)境:kubernetes v1.18.16
k8s 資源單位介紹
CPU:1 core = 1000 milli core(毫核);50m相當(dāng)于0.05core,最小單位1m;
內(nèi)存:M 1000進(jìn)制 129M字節(jié);Mi 1024進(jìn)制
pod資源限額設(shè)置:
spec:
containers:
- name: [容器名稱]
image: [容器鏡像]
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 10m
memory: 10Mi
limits:
cpu: '1'
memory: 1000Mi
requests:最低配額,保證被調(diào)度的節(jié)點(diǎn)上至少有的資源配額
limits: 資源限制,容器可以分配到的最大資源配額
pod qosClass介紹
qosClass 表示服務(wù)質(zhì)量類型(Quality of Service)。其值由pod請(qǐng)求的內(nèi)存和cpu確定的,有三種類型:Guaranteed,Burstable 和 BestEffort。當(dāng)node資源不足而驅(qū)逐pod時(shí)優(yōu)先級(jí)不同:BestEffort→Burstable→Guaranteed。最先驅(qū)逐BestEffort,然后Burstable,最后Guaranteed。pod沒有配置資源限制的時(shí)默認(rèn)為BestEffort。
kubectl get pod [pod名稱] -o yml podqosClass類型
輸出中
qosClass字段顯示當(dāng)前
QoS Classes分類
Guranteed:pod中所有Container的所有Resource的limit和request都相等且不為0,則這個(gè)Pod的QoS Class就是Guaranteed。注意,如果一個(gè)容器只指明了limit,而未指明request,則表明request的值等于limit的值。
Burstable:pod中至少有一個(gè)容器設(shè)置CPU或內(nèi)存資源的requests屬性。
BestEffort:Pod中沒有任何一個(gè)容器設(shè)置了requests或limits屬性。
node資源緊缺時(shí)pod驅(qū)逐機(jī)制
Guaranteed > Burstable > BestEffort
參考:http://t.zoukankan.com/peitianwang-p-11588003.html