一、k8s支持內存和cpu的限制nginx
requests:容器運行需求,最低保障
limits:限制,硬限制(資源上限)api
CPU: 1顆邏輯CPU(1核CPU=4個邏輯CPU)
1物理核=1000個微核(millicores)
1000m=1CPUbash
內存:
app
二、Qos類別blog
Qos類別:
一、Guranteed:(優選級最高)
(每一個容器)同時設置了CPU和內存的requests和limits,cpu.limits=cpu.requests,memory.limits=memory。request
二、 Burstable:(優先級第二)
至少有一個容器設置了CPU或內存資源的requests屬性
三、BestEffort:
沒有任何一個容器設置了requests或limits屬性
當資源不夠使用時,BestEffort狀態的容器會被優先終止(根據優先級終止)內存
k8s是以資源的實際佔用量和requests設置的需求量的比例,優先終止實際佔用量和requests的需求量高的
(例如設置requests爲512M的內存,實際使用500M與requests爲1g,實際使用600M,會優先終止使用500M容器的pod)資源
三、使用k8s資源限制requests
[root@k8s-m ~]# cat mypod1.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod labels: app: my-pod spec: containers: - name: my-pod image: nginx ports: - name: http containerPort: 80 resources: requests: cpu: "250m" memory: "64Mi" limits: #資源最高限制 memory: "128Mi" cpu: "500m" #0.5核cpu #查看QoS [root@k8s-m ~]# kubectl describe pod nginx-pod|grep QoS QoS Class: Burstable