k8s-pod的资源限制

1. Qos类别

说明:k8s会按优先级分配资源

  • Guranteed(保证)
    1)优先级:最高
    2)条件:
    (每个容器)同时设置了CPU和内存的requests和limits
    且cpu.limits=cpu.requests,memory.limits=memory。

  • Burstable(稳定)
    1)优先级:其次
    2)条件:至少有一个容器设置了CPU或内存资源的requests属性

  • BestEffort(尽力)
    1)优先级:最低
    当资源不够使用时,BestEffort状态的容器会被优先终止(根据优先级终止)
    2)条件:没有任何一个容器设置了requests或limits属性

2. 资源分配原则

2.1 资源分配

按Qos优先级分配

2.2 结束进程

说明:资源不足的情况下会按如下规则结束进程

1)按Qos级别
2)同级别中
A = 实际占用量 / requests值,优先终止A大的pod
例如:
Pod-01,设置requests=512M的内存,实际使用500M
Pod-02,设置requests=1G,实际使用600M
则:会优先终止使用500M容器的pod)

3 资源限制

3.1 cpu/mem资源限制

说明:yml文件如下

  • request是最低保障
  • limits 是限制
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" 

3.2 ephemeral-storage限制

说明:限制容器存储空间的使用,该存储是

resources:
  requests:
    cpu: 1
    memory: 2048Mi
    ephemeral-storage: 2Gi
  limits:
    cpu: 2
    memory: 2048Mi
    ephemeral-storage: 5Gi

在这里插入图片描述

posted on 2021-08-14 13:29  运维开发玄德公  阅读(43)  评论(0编辑  收藏  举报  来源

导航