设置资源配额
更新时间:2026-03-17
概述
本文档介绍命名空间的资源配额(ResourceQuota)。在多团队或多用户的共享集群资源场景下,可通过资源配额限制团队或用户可使用的资源总量,包括限制命名空间下创建某一类型对象(容器、服务)的数量,以及限制 CPU、内存等计算资源的总量。更多信息请参见 ResourceQuota。
前提条件
操作步骤
- 登录百度智能云管理控制台。
- 在 产品服务->云原生->容器引擎 CCE->集群管理->集群列表 中,单击目标集群名称,进入“集群详情”页,在侧边栏单击 【命名空间与配额】。
- 在命名空间列表中,单击目标命名空间的 【更多】 > 【设置资源配额】。
-
根据业务需要配置该命名空间的计算资源限制、存储资源限制以及其他资源限制。
限制名称 限制说明 CPU Request(请求) 该命名空间下所有非终止状态的Pod的CPU请求总和的上限 CPU Limit(限制) 该命名空间下所有非终止状态的Pod的CPU总和的上限 内存 Request(请求) 该命名空间下所有非终止状态的Pod的内存请求总和的上限 内存 Limit(限制) 该命名空间下所有非终止状态的Pod的内存总和的上限 存储总量 该命名空间下所有PVC的存储资源需求总量的上限 PVC总量 该命名空间所允许的PVC总数的上限 本地临时存储Request(请求) 该命名空间下所有Pod的本地临时存储请求总和的上限 本地临时存储 Limit(限制) 该命名空间下所有 Pod 的本地临时存储总和上限 容器组总量 该命名空间下所有非终止状态的Pod的总数的上限 Service总量 该命名空间下所有Service的总数的上限 LoadBalance Service总量 该命名空间下所有LoadBalance类型Service的总数的上限 Service使用NodePort总量 该命名空间下所有Service使用NodePort总数的上限 Deployment总量 该命名空间下所有Deployment的总数的上限 StatefulSet总量 该命名空间下所有StatefulSet的总数的上限 Job总量 该命名空间下所有Job的总数的上限 CronJob总量 该命名空间下所有CronJob的总数的上限 Secret总量 该命名空间下所有Secret的总数的上限 ConfigMap总量 该命名空间下所有ConfigMap的总数的上限 说明:
- 不填表示对该资源无限制。
- Service使用NodePort总量:限制的是该命名空间下NodePort资源的数量,不是NodePort类型Service的数量。
- 单击 【确定】,完成命名空间资源配额设置。
示例
限制 Namespace Pod 个数
本示例演示使用 ResourceQuota 限制命名空间中 Pod 的创建数量。
- 创建示例命名空间。
Bash
1kubectl create namespace quota-example
- 创建 ResourceQuota。
将以下 YAML 保存为 quota-demo.yaml,并执行 kubectl create -f quota-demo.yaml 创建 ResourceQuota:
YAML
1apiVersion: v1
2kind: ResourceQuota
3metadata:
4 name: default-resource-quota
5 namespace: quota-example
6spec:
7 hard:
8 pods: "4" ## 最多 4 个 Pod
9 configmaps: "10" ## 最多 10 个 ConfigMap
10 secrets: "10" ## 最多 10 个 secret
11 services: "10" ## 最多 10 个 service
12 services.loadbalancers: "2" ## 最多 2 个 LoadBalancer 模式的 service
13 cpu: "1000" ## 该命名空间下最多使用 1000 个 CPU 的资源
14 memory: 200Gi ## 该命名空间下最多使用 200Gi 的内存
- 验证 ResourceQuota。
使用以下 YAML 创建 5 个 Pod,但最终只会创建 4 个 Pod:
YAML
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 name: deployment-example
5 namespace: quota-example
6 labels:
7 app: nginx
8spec:
9 replicas: 5
10 selector:
11 matchLabels:
12 app: nginx
13 template:
14 metadata:
15 labels:
16 app: nginx
17 spec:
18 restartPolicy: Always
19 containers:
20 - name: nginx
21 image: hub.baidubce.com/cce/nginx-alpine-go:latest
22 imagePullPolicy: Always
23 resources:
24 limits:
25 cpu: 100m
26 memory: 128Mi
27 requests:
28 cpu: 100m
29 memory: 128Mi
最多只会创建 4 个 Pod:
Text
1$ kubectl get deployment -n quota-example
2NAME READY UP-TO-DATE AVAILABLE AGE
3deployment-example 4/5 4 4 59s
评价此篇文章
