1. 程式人生 > >k8s容器的資源限制

k8s容器的資源限制

mit data 資源 需求量 bash its container highlight true

1、k8s支持內存和cpu的限制

requests:容器運行需求,最低保障
limits:限制,硬限制(資源上限)

CPU: 1顆邏輯CPU(1核CPU=4個邏輯CPU)
1物理核=1000個微核(millicores)
1000m=1CPU

內存:


2、Qos類別

Qos類別:
1、Guranteed:(優選級最高)
(每個容器)同時設置了CPU和內存的requests和limits,cpu.limits=cpu.requests,memory.limits=memory。request

2、 Burstable:(優先級第二)
至少有一個容器設置了CPU或內存資源的requests屬性
3、BestEffort:
沒有任何一個容器設置了requests或limits屬性
當資源不夠使用時,BestEffort狀態的容器會被優先終止(根據優先級終止)

k8s是以資源的實際占用量和requests設置的需求量的比例,優先終止實際占用量和requests的需求量高的
(例如設置requests為512M的內存,實際使用500M與requests為1g,實際使用600M,會優先終止使用500M容器的pod)

3、使用k8s資源限制

[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

  

k8s容器的資源限制