资源配额

当多个用户或团队共享具有固定节点数目的集群时,人们会担心有人使用超过其基于公平原则所分配到的资源量。

资源配额是帮助管理员解决这一问题的工具。

资源配额,由 ResourceQuota 对象定义, 提供了限制每个命名空间的资源总消耗的约束。 资源配额还可以限制在命名空间中可以创建的对象数量(按 API 类型计算), 以及该命名空间中存在的 API 对象可能消耗的基础设施资源的总量。

Kubernetes ResourceQuota 的工作原理

ResourceQuota 的工作方式如下:

  • 不同团队在不同的命名空间中工作。 这种分离可以通过 RBAC 或任何其他鉴权机制来强制执行。

  • 集群管理员为每个命名空间创建至少一个 ResourceQuota。

    • 为了确保强制执行不被解除,集群管理员还应限制对删除或更新此 ResourceQuota 的访问; 例如,通过定义一个验证准入策略来实现这点。
  • 当用户在命名空间下创建资源(如 Pod、Service 等)时,Kubernetes 的配额系统会跟踪集群的资源使用情况, 以确保使用的资源用量不超过 ResourceQuota 中定义的硬性资源限额。

    你可以对 ResourceQuota 应用一个范围,以限制其适用的地方。

  • 如果创建或更新资源违反了配额约束,控制平面将使用 HTTP 状态码 403 Forbidden 拒绝该请求。错误信息包括解释将要违反的约束的说明。

  • 如果在命名空间中为诸如 cpumemory资源启用了配额, 用户在定义 Pod 时必须指定这些值的请求或限制;否则,配额系统可能会拒绝 Pod 创建。

    资源配额演练展示了一个如何避免此问题的示例。

最后修改 May 28, 2025 at 11:58 PM PST: [zh-cn]sync resource-quotas.md (5afdc70e4d)