--- title: Kubernetes ResourceQuota 与 LimitRange(命名空间资源治理与验证) date: 2025-11-26 keywords: - ResourceQuota - LimitRange - Requests - Limits - 命名空间治理 description: 使用ResourceQuota与LimitRange在命名空间层面治理CPU/内存与对象数量,设定默认与最大最小限制,提供配置与验证方法。 categories: - 文章资讯 - 技术教程 --- ## 概述 ResourceQuota限制命名空间的总资源与对象配额,LimitRange为Pod与容器设定默认与边界值。两者协同可防止资源滥用并提升多租户可控性。 ## 关键实践与参数 - 配额限制: `hard` 包括 `cpu` `memory` `pods` 等 - 默认限制: LimitRange设定 `default` 与 `defaultRequest` - 策略协同: 与PriorityClass与HPA协作治理 - 观测: 采集配额使用与事件 ## 示例/配置/实现 ```yaml apiVersion: v1 kind: ResourceQuota metadata: { name: ns-quota, namespace: app } spec: hard: requests.cpu: "4" requests.memory: 8Gi limits.cpu: "8" limits.memory: 16Gi pods: "50" --- apiVersion: v1 kind: LimitRange metadata: { name: ns-lr, namespace: app } spec: limits: - type: Container defaultRequest: { cpu: "250m", memory: "256Mi" } default: { cpu: "1000m", memory: "512Mi" } min: { cpu: "100m", memory: "128Mi" } max: { cpu: "2000m", memory: "1Gi" } ``` ## 验证 - 配额生效: 超出 `pods` 或 `cpu` 限制的创建被拒 - 默认与边界: 未声明资源的容器自动应用默认值 - 事件与告警: 配额超限触发事件并告警 - 协作稳定: 与HPA与PriorityClass协同下资源稳定 ## 注意事项 - 配额需结合历史与容量规划 - LimitRange默认值需适配工作负载 - 监控并定期调整配额 - 与命名空间策略与RBAC协同

发表评论 取消回复