总结:K8S之pod配置

一、介绍

在K8s中定义Pod中运行容器有两个维度的限制:
 1. 资源需求:即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。
   如: Pod运行至少需要2G内存,1核CPU
    2. 资源限额:即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,这就是资源限额。

  

二、Requests与Limits

Requests:  就是需求限制,也叫软限制

Limits:最大限制,也叫硬限制

通常来说:Limits >= Requests 并且requests 和 limits 通常要一起配置,若只配置了requests,而不配置limits,则很可能导致Pod会吃掉所有资源。

三、 在K8s的资源


CPU

我们知道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时会被终止,并根据重启策略进行重启。

 

你可能感兴趣的:(K8S,kubernetes)