参考官方 Kubernetes 文档:Resource Quotas
用于限制特定命名空间可用的资源。该命名空间内所有 Pod(不包括处于 Terminating
状态的 Pod)使用的资源总量不得超过配额。
资源请求(Resource Requests):定义容器所需的最小资源(如 CPU、内存),指导 Kubernetes 调度器将 Pod 安排到具有足够容量的节点上。
资源限制(Resource Limits):定义容器可使用的最大资源,防止资源耗尽,确保集群稳定。
如果某资源标记为
Unlimited
,则不强制执行显式配额,但使用量不能超过集群的可用容量。
资源配额用于跟踪命名空间内资源的累计消耗(如容器限制、新建 Pod 或 PVC)。
支持的配额类型
字段 | 描述 |
---|---|
资源请求 | 命名空间内所有 Pod 的总请求资源:
|
资源限制 | 命名空间内所有 Pod 的总限制资源:
|
Pod 数量 | 命名空间内允许的最大 Pod 数量。 |
注意:
Unlimited
表示该命名空间可使用项目剩余的该资源类型的集群资源。通过 YAML 文件创建
直接通过命令行创建
配额类型:
注意:确保存储类已预先分配给包含该命名空间的项目。
扩展资源配额通过 ConfigMap 定义。如果缺少 ConfigMap,则该资源类别不会出现。
ConfigMap 字段说明
字段 | 描述 |
---|---|
data.dataType | 数据类型(例如 vGPU )。 |
data.defaultValue | 默认值(为空表示无默认值)。 |
data.descriptionEn | 英文提示文本(鼠标悬停时显示)。 |
data.descriptionZh | 中文提示文本(鼠标悬停时显示)。 |
data.excludeResources | 互斥资源(逗号分隔)。 |
data.group | 资源组(例如 MPS )。 |
data.groupI18n | UI 下拉菜单中显示的英文/中文组名。 |
data.key | 指定键的值。一个配置字典只能描述一个键。 |
data.labelEn/data.labelZh | 资源的英文/中文名称,可在对应配额类型的下拉选项中查看和选择。该字段功能与 data.groupI18n 相同,但仅适用于同一资源只有单一值的情况,确保兼容旧版本配置字典(ConfigMap)。 |
data.limits | 是否配置资源限制。有效值包括:disabled 表示不能配置限制,required 表示必须输入,optional 表示可选输入。 |
data.requests | 是否配置资源请求。有效值包括:disabled 表示不能配置请求,required 表示必须输入,optional 表示可选输入,fromLimits 表示使用与限制相同的配置。 |
data.relatedResources | 关联资源。该字段预留,当前不可用。 |
data.resourceUnit | 资源单位(例如 cores 、GiB )。不支持中文输入。 |
data.runtimeClassName | 运行时类别(默认 GPU 为 nvidia )。 |
metadata.labels | 必填标签:
|
metadata.name | 格式为 cf-crl-<*groupName*>-<*name*> ,其中
|
metadata.namespace | 必须为 kube-public |
自定义配额名称格式必须符合以下规范: