超售比

目录

理解命名空间资源超售比

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

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

关键概念

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

核心能力

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

示例

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

CPU 请求 = CPU 限制 / 超售比。因此,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. 进入 项目管理,导航到 命名空间 > 命名空间 列表。

  2. 点击目标 命名空间名称

  3. 点击 操作 > 更新超售

  4. 选择适当的超售比 配置方法,以设置命名空间的 CPU 或内存超售比。

参数描述
继承自集群
  • 命名空间继承集群的超售比。
  • 示例:如果集群 CPU/内存比为 4,则命名空间默认为 4。
  • 容器请求 = 限制 / 集群比。
  • 如果未设置限制,则使用命名空间的默认容器配额。
自定义
  • 设置特定于命名空间的比率(整数 > 1)。
  • 示例:集群比 = 4,命名空间比 = 2 → 请求 = 限制 / 2。
  • 留空以禁用命名空间的超售。
  1. 点击 更新

注意:更改仅适用于新创建的 Pods。现有 Pods 保留其原始请求,直到重建。