智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
   39  
查询码: 00000230
6.8.5 quota (ResourceQuota) 命名空间资源总量限制(CPU/内存)案例
作者: 文艺范儿 于 2026年01月08日 发布在分类 / Docker & K8S / K8S基础 ,于 2026年01月08日 编辑
K8S

6.8.5 quota (ResourceQuota) 命名空间资源总量限制(CPU/内存)案例

简介

ResourceQuota(资源配额)是 Kubernetes 的 命名空间级资源,用于限制某个 Namespace 内所有 Pod/容器对 可压缩资源(CPU)不可压缩资源(内存、存储)扩展资源(GPU)总申请量(requests)总限制量(limits)

  • 作用:实现多租户资源隔离、防止资源滥用、辅助容量规划。
  • 范围:仅对所在 Namespace 生效,不影响其他 Namespace。
  • 对象:可限制 podsservicesconfigmapssecrets等对象数量,以及 cpumemorygpu等资源数量。

核心作用

场景 说明

多团队共享集群

限制每个团队 Namespace 的资源总量,避免互相影响

环境与项目隔离

dev/test/staging 分别设置配额,防止测试任务冲击生产资源

成本控制

云上按配额预分配资源,避免账单失控

防止“鲸鱼”应用

限制单 Namespace 最多使用多少 CPU/内存,保护集群稳定性


作用范围与类型

1. 可限制的资源维度

维度 示例 说明

计算资源总量

requests.cpulimits.cpurequests.memorylimits.memory

对 Namespace 内所有容器的 requests/limits求和限制

存储资源总量

requests.storagepersistentvolumeclaimsephemeral-storage

限制 PVC 数量与存储容量

扩展资源总量

requests.nvidia.com/gpulimits.nvidia.com/gpu

限制 GPU 使用总量

对象数量

podsservicesconfigmapssecretsservices.loadbalancers

限制 Namespace 内某类 K8s 对象的数量

2. 配额计算规则

  • requests总和:统计所有容器的 resources.requests值。
  • limits总和:统计所有容器的 resources.limits值。
  • 若容器未设置 requestslimits,则由 LimitRange的默认值填充后再计入配额(如果启用了 LimitRange)。
  • 配额检查时机:创建 Pod 时,API Server 会校验该 Pod 加入后是否会超出 Namespace 的 ResourceQuota,超出的 Pod 会被拒绝(Forbidden)。

配置语法

基本结构:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: <quota-name>
  namespace: <namespace>   # 必须指定 Namespace
spec:
  hard:                   # 硬性限制(Hard Limit)
    <resource.path>: <quantity>
    <resource.path>: <quantity>
  • hard下的每一项是 资源路径 = 数量,例如 requests.cpu: "4"表示该 Namespace 所有容器的 CPU 请求总量不得超过 4 核。
  • 数量单位:CPU 用 m或整数核,内存用 Mi/Gi,GPU 用整数。

案例1:限制 CPU 与内存总量(基础配额)

场景

限制 team-a命名空间最多使用 2 核 CPU 请求4Gi 内存请求4 核 CPU 限制8Gi 内存限制,且最多 10 个 Pod。

YAML 配置(quota-cpu-mem.yaml)

apiVersion: v1
kind: ResourceQuota
metadata:
  name: team-a-compute-quota
  namespace: team-a
spec:
  hard:
    pods: "10"
    requests.cpu: "2"
    requests.memory: "4Gi"
    limits.cpu: "4"
    limits.memory: "8Gi"

创建与验证

kubectl create ns team-a
kubectl apply -f quota-cpu-mem.yaml
kubectl describe resourcequota team-a-compute-quota -n team-a

输出示例:

Name:            team-a-compute-quota
Namespace:       team-a
Resource         Used  Hard
--------         ----  ----
limits.cpu       0     4
limits.memory    0     8Gi
pods             0     10
requests.cpu     0     2
requests.memory  0     4Gi

案例2:限制 GPU 资源(扩展资源)

场景

ml-team命名空间用于机器学习训练,限制最多申请 4 块 NVIDIA GPU(requests = limits,GPU 通常不可拆分)。

YAML 配置(quota-gpu.yaml)

apiVersion: v1
kind: ResourceQuota
metadata:
  name: ml-gpu-quota
  namespace: ml-team
spec:
  hard:
    pods: "5"
    requests.nvidia.com/gpu: "4"
    limits.nvidia.com/gpu: "4"

创建与验证

kubectl create ns ml-team
kubectl apply -f quota-gpu.yaml
kubectl describe resourcequota ml-gpu-quota -n ml-team

注意

  • 节点需安装 NVIDIA 驱动与 DevicePlugin,集群需启用 GPU 资源发现。
  • 若 Pod 请求 nvidia.com/gpu: 2,则计入配额 2,剩余可用 GPU 为 2。

案例3:综合配额(CPU/内存/GPU/存储/对象数量)

场景

bigdata命名空间用于大数据任务,配额示例如下:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: bigdata-full-quota
  namespace: bigdata
spec:
  hard:
    # 对象数量
    pods: "20"
    services: "10"
    persistentvolumeclaims: "10"
    secrets: "20"

    # 计算资源
    requests.cpu: "20"
    requests.memory: "40Gi"
    limits.cpu: "40"
    limits.memory: "80Gi"

    # GPU
    requests.nvidia.com/gpu: "8"
    limits.nvidia.com/gpu: "8"

    # 存储
    requests.storage: "500Gi"
    ephemeral-storage: "100Gi"

生产最佳实践

  1. 配额与 LimitRange 配合使用
    • ResourceQuota限制总量,LimitRange设置默认值,防止“裸跑”容器无限制使用资源。
  2. 配额设置原则
    • requests总和 ≤ 集群可分配资源的 70%,预留缓冲给系统组件与突发流量。
    • limits可略高于 requests,但需防止 OOM 或 CPU 争抢。
  3. 监控与告警
    • 监控 kube_resourcequota指标的 usedhard,使用 Prometheus + Grafana 可视化配额使用率。
    • 设置告警:使用率 > 80% 时提醒负责人扩容或优化资源。
  4. 配额调整流程
    • 配额变更需走审批流程(如 GitOps PR),避免随意扩大导致集群资源紧张。
  5. 定期 Review
    • 每月 Review 配额使用率,清理闲置 Namespace 或调整过低/过高配额。
笔记
0人参与


 历史版本

备注 修改日期 修改人
创建版本 2026-01-08 01:33:50[当前版本] 文艺范儿

  目录
    文艺知识分享平台 -V 5.2.5 -wcp