赞
踩
在K8s中定义Pod中运行容器有两个维度的限制:
1. 资源需求:即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。
如: Pod运行至少需要2G内存,1核CPU
2. 资源限额:即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。
Requests: 就是需求限制,也叫软限制
Limits:最大限制,也叫硬限制
通常来说:Limits >= Requests 并且requests 和 limits 通常要一起配置,若只配置了requests,而不配置limits,则很可能导致Pod会吃掉所有资源。
我们知道2核2线程的CPU,可被系统识别为4个逻辑CPU,在K8s中对CPU的分配限制是对逻辑CPU做分片限制的。也就是说分配给容器一个CPU,实际是分配一个逻辑CPU。而且1个逻辑CPU还可被单独划分子单位,即 1个逻辑CPU,还可被划分为1000个millicore(毫核), 简单说就是1个逻辑CPU,继续逻辑分割为1000个豪核心。
豪核:可简单理解为将CPU的时间片做逻辑分割,每一段时间片就是一个豪核心。所以:500m 就是500豪核心,即0.5个逻辑CPU.
K,M,G,T,P,E :通常这些单位是以1000为换算标准的。
Ki, Mi,Gi,Ti, Pi, Ei :这些通常是以1024为换算标准的
requests未设置时,默认与limits相同。
limits未设置时,默认值与集群配置相关。
可以使用requests来设置各容器需要的最小资源
limits用于限制运行时容器占用的资源,用来限制容器的最大CPU、内存的使用率。
当容器申请内存超过limits时会被终止,并根据重启策略进行重启。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。