【Kubernetes系列】Kubernetes中的resources
博客目录
- 1. limits(资源上限)
- 2. requests(资源请求)
- 关键区别
- 其他注意事项
- 示例场景
在 Kubernetes (k8s) 中,resources
用于定义容器的资源请求(requests
)和限制(limits
),帮助调度器分配资源并确保容器稳定运行。以下是您提供的配置参数的含义:
1. limits(资源上限)
定义容器最多能使用的资源量,超过会被系统限制:
cpu: 2
- 容器最多使用
2 个 CPU 核心
(或等价的2000m
,即 2000 毫核)。 - 如果超过,容器会被限制(但不会被杀死)。
- 容器最多使用
memory: 4Gi
- 容器最多使用
4 GiB 内存
。 - 如果超过,容器会被 OOM Killer 终止(根据重启策略可能重启)。
- 容器最多使用
2. requests(资源请求)
定义容器启动时请求的最小资源量,调度器根据此分配节点:
cpu: 1
- 容器至少需要
1 个 CPU 核心
(或1000m
)才能被调度。 - 节点必须满足此条件才会运行该容器。
- 容器至少需要
memory: 2Gi
- 容器至少需要
2 GiB 内存
才能被调度。
- 容器至少需要
关键区别
参数 | 作用 | 触发条件 | 后果 |
---|---|---|---|
requests | 调度依据(最小需求) | 节点资源不足时 | 容器无法被调度到节点 |
limits | 硬性上限(最大用量) | 资源使用超过限制 | CPU 被限流 / 内存被终止 |
其他注意事项
-
CPU 单位
1
= 1 个 vCPU/core(等价于1000m
)。- 可细分,如
0.5
=500m
。
-
内存单位
Gi
= Gibibyte (1024³ bytes),Mi
= Mebibyte (1024² bytes)。- 区分大小写,
4Gi
≠4GB
(后者按 1000³ 计算)。
-
合理设置
requests
过低可能导致节点过载。limits
过高可能浪费资源,过低会触发限制。
-
服务质量(QoS)
- 若
requests == limits
,容器属于Guaranteed
等级(优先级最高)。 - 您的配置属于
Burstable
等级(requests
<limits
)。
- 若
示例场景
- 调度阶段:K8s 会寻找至少有
1 CPU + 2Gi 内存
空闲的节点。 - 运行时:容器最多能用
2 CPU + 4Gi 内存
,超出会被限制。
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙