
高效配置 Kubernetes 资源管理涉及三个关键机制:Resource Limits(容器级保障与约束)、Resource Quotas(命名空间级总量硬限)、LimitRanges(命名空间级默认值与范围校验)。三者协同工作是生产环境最佳实践:LimitRange 奠定基础配置规范,Resource Limits 实现应用精细控制,Resource Quota 设定命名空间资源天花板。合理使用是保障 Kubernetes 集群资源高效、稳定、公平利用的核心。
核心价值与目标:
requests 提高调度效率,避免资源碎片;通过设置 limits 防止浪费。1、资源限制(Resource Limits)
1.1 概述
Kubernetes 允许为 Pod 中的每个容器设置资源请求(Requests)和限制(Limits),用于控制容器的资源使用范围:
1.2 作用
1.3 配置示例
查看命令:kubectl describe pod <pod-name>
注意事项: 直接影响单个容器的调度和运行时行为。
resources:
requests:
memory: "256Mi" # 最小内存需求
cpu: "500m" # 最小 CPU 需求(0.5 核)
limits:
memory: "512Mi" # 最大内存限制
cpu: "1" # 最大 CPU 限制(1 核)2、资源配额(Resource Quotas)
2.1 概念
针对命名空间的资源总量限制,控制 CPU、内存、Pod 数量等资源的总使用量。
2.2 作用
2.3 配额类型
2.4 配置示例
查看命令:
kubectl get quota -n <namespace>kubectl describe quota -n <namespace>spec:
hard:
requests.cpu: "4" # 命名空间最多 4 核 CPU 请求
requests.memory: "8Gi"
limits.cpu: "8" # 命名空间最多 8 核 CPU 限制
pods: "10" # 最多 10 个 Pod注意事项:配额是硬限制,超限时会拒绝创建新资源。需要与容器级别的 requests/limits 配合使用(Quota 统计的是命名空间内所有容器的 requests/limits 总和)。
3、限制范围(LimitRange)
3.1 概念
为命名空间内的容器或 Pod 设置默认资源请求/限制,并约束最小/最大值。
3.2 作用
3.3 配置示例
spec:
limits:
- type: Container
max: # 最大值
memory: "1Gi"
cpu: "1"
min: # 最小值
memory: "128Mi"
cpu: "200m"
default: # 默认限制
memory: "512Mi"
cpu: "500m"
defaultRequest: # 默认请求
memory: "256Mi"
cpu: "300m"查看命令:kubectl describe limitrange -n <namespace>
注意事项:
三者对比:
特性 | 资源限制 (Resource Limits) | 资源配额 (Resource Quotas) | 限制范围 (LimitRanges) |
|---|---|---|---|
应用范围 | 单个容器 (Pod 内) | 整个命名空间 | 命名空间内的容器/Pod |
作用层级 | 容器级别 | 命名空间级别 | 容器/Pod 级别 (规则在 NS 级) |
主要目的 | 控制单个容器资源消耗 | 控制命名空间资源总量 | 提供默认值 + 约束配置范围 |
核心机制 | requests (调度), limits (运行时约束) | hard (总量上限) | min/max (范围), default/defaultRequest (默认值) |
超出后果 | CPU Throttle / OOMKill | 拒绝创建新资源 | 拒绝创建配置不符的资源 |
典型场景 | 关键应用容器精细控制 | 多租户资源隔离与公平 | 团队规范、防止配置错误 |
4、联合使用 :
default/defaultRequest) 和安全范围 (min/max)。确保即使开发者未配置或配置不当,资源使用也在可控范围内。requests 和 limits。这是资源控制最直接和精细的手段。5、工作流程协同:
requests/limits 是否符合 min/max。requests 寻找合适节点。requests/limits 是否超出配额。超出则拒绝创建。
limits 的约束(CPU Throttle / OOMKill),超限会被限制或终止。6、注意事项
requests 和 limits 差距过大导致资源浪费或竞争。 如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!