kubernetes资源限制介绍:

在kubernetes中,如果运行的容器没有定义资源等限制,但是在namespace中定义了LimitRange限制,那么该容器会继承LimitRange中的默认限制。如果namespace没有定义LimitRange限制,那么该容器可以使用宿主机的最大可用资源,直至无资源可用而触发宿主机OOM Killer。

cpu资源

概念:CPU 的使用时间是可压缩的,换句话说它本身无状态,申请资源很快,也能快速正常回收;

CPU 以核心为单位进行限制,单位可以是整核、浮点核心数或毫核(m/milli):
2=2核心=200% 0.5=500m=50% 1.2=1200m=120%
官方文档:https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-cpu-resource/

内存资源

概念:内存(memory)大小是不可压缩的,因为它是有状态的(内存里面保存的数据),申请资源很慢(需要计算和分配内存块的空间),并且回收可能失败(被占用的内存一般不可回收)。

memory 以字节为单位,单位可以是E、P、T、G、M、K、Ei、Pi、Ti、Gi、Mi、Ki
官方文档:https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-memory-resource/

容器的CPU及memory实现资源限制

requests【请求资源】为kubernetes schedule执行pod调度时node节点至少需要拥有的空闲资源。
limit【限制资源】为kubernetes中pod运行成功后最大可以使用的资源上限。
在这里插入图片描述

Limit Range对具体某个Pod或容器的资源使用进行限制

apiVersion: v1
kind: LimitRange
metadata:
  name: limitrange-myserver
  namespace: myserver
spec:
  limits:
  - type: Container       #限制的资源类型
    max:
      cpu: "2"            #限制单个容器的最大CPU
      memory: "2Gi"       #限制单个容器的最大内存
    min:
      cpu: "500m"         #限制单个容器的最小CPU
      memory: "512Mi"     #限制单个容器的最小内存
    default:
      cpu: "500m"         #默认单个容器的CPU限制
      memory: "512Mi"     #默认单个容器的内存限制
    defaultRequest:
      cpu: "500m"         #默认单个容器的CPU创建请求
      memory: "512Mi"     #默认单个容器的内存创建请求
    maxLimitRequestRatio:
      cpu: 2              #限制CPU limit/request比值最大为2  
      memory: 2         #限制内存limit/request比值最大为1.5
  - type: Pod
    max:
      cpu: "4"            #限制单个Pod的最大CPU
      memory: "4Gi"       #限制单个Pod最大内存
  - type: PersistentVolumeClaim
    max:
      storage: 50Gi        #限制PVC最大的requests.storage
    min:
      storage: 30Gi        #限制PVC最小的requests.storage

对整个namespace的CPU及memory实现资源限制

官方文档:https://kubernetes.io/zh/docs/concepts/policy/resource-quotas/

限定某个对象类型(如Pod、service)可创建对象的总数;
限定某个对象类型可消耗的计算资源(CPU、内存)与存储资源(存储卷声明)总数;

apiVersion: v1
kind: ResourceQuota
metadata:
  name: quota-myserver
  namespace: myserver
spec:
  hard:
    requests.cpu: "8"
    limits.cpu: "8"
    requests.memory: 8Gi
    limits.memory: 8Gi
    requests.nvidia.com/gpu: 4
    pods: "6"
    services: "6"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值