Overcommit Ratio

目录

理解命名空间资源超售比

允许您为每个命名空间设置资源超售比(CPU 和内存)。这管理了该命名空间内容器的限制(最大使用量)与请求(保证的最小值)之间的关系,从而优化资源利用率。

通过配置该比率,您可以确保用户定义的容器限制和请求保持在合理范围内,提高整个集群的资源效率。

关键概念

  • Limits:容器可使用的最大资源。超过限制可能导致 CPU 限流或内存终止。
  • Requests:容器所需的保证最小资源。Kubernetes 根据这些请求调度容器。
  • Overcommit Ratio:限制 / 请求。该设置定义了命名空间内此比率的可接受范围,平衡资源保障与防止过度消耗。

核心能力

  • 通过设置合适的超售比,提升命名空间内资源密度和应用稳定性,管理资源限制与请求之间的平衡。

示例

假设命名空间超售比设置为 2,创建应用时指定 CPU 限制为 4c,则对应的 CPU 请求值计算为:

CPU Request = CPU Limit / Overcommit ratio。因此,CPU 请求为 4c / 2 = 2c。

CRD 定义

# example-namespace-overcommit.yaml
apiVersion: resource.alauda.io/v1
kind: NamespaceResourceRatio
metadata:
  namespace: example
  name: example-namespace-overcommit
spec:
  cpu: 3 # 若无此字段则继承集群超售比;0 表示不限制。
  memory: 4 # 若无此字段则继承集群超售比;0 表示不限制。
status:
  clusterCPU: 2 # 集群超售比
  clusterMemory: 3

使用 CLI 创建超售比

kubectl apply -f example-namespace-overcommit.yaml

使用 Web 控制台创建/更新超售比

允许调整命名空间的 超售比,以管理资源限制与请求之间的比例,确保容器资源分配保持在定义范围内,提高集群资源利用率。

注意事项

如果集群使用节点虚拟化(如虚拟节点),请在为虚拟机配置之前先在集群/命名空间层面禁用超售。

操作步骤

  1. 进入 项目管理,导航至 Namespaces > Namespace 列表。

  2. 点击目标 Namespace 名称

  3. 点击 操作 > 更新超售比

  4. 选择合适的超售比 配置方式,设置该命名空间的 CPU 或内存超售比。

参数说明
继承集群配置
  • 命名空间继承集群的超售比。
  • 示例:若集群 CPU/内存比为 4,命名空间默认为 4。
  • 容器请求 = 限制 / 集群超售比。
  • 若未设置限制,则使用命名空间默认容器配额。
自定义
  • 设置命名空间专属比率(整数且大于 1)。
  • 示例:集群比率为 4,命名空间比率为 2 → 请求 = 限制 / 2。
  • 留空表示禁用该命名空间的超售。
  1. 点击 更新

注意:更改仅对新创建的 Pod 生效,已有 Pod 保持原有请求,直到重建。