设置容器规格
操作场景
在创建工作负载时为添加的容器设置资源限制,可以对工作负载中每个实例所用的CPU配额、内存配额进行申请和限制。
配置含义
在CPU配额和内存配额设置中,申请值与限制值的含义如下:
- 申请值用于预分配资源,当集群中的节点没有申请值所要求的资源数量时,容器会创建失败。
- 限制值用于设置容器使用资源的最大上限,避免异常情况下节点资源消耗过多,避免极端场景下因节点资源耗尽导致已运行的容器业务被驱逐。
创建工作负载时,建议设置CPU和内存的资源上下限。同一个节点上部署的工作负载,对于未设置资源上下限的工作负载,如果其异常资源泄露会导致其它工作负载分配不到资源而异常。未设置资源上下限的工作负载,工作负载监控信息也会不准确。
配置说明
- CPU配额:
表1 CPU配额说明 参数
说明
CPU申请
容器使用的最小CPU需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配CPU总量 ≥ 容器CPU申请数时,才允许将容器调度到该节点。
CPU限制
容器能使用的CPU最大值。
建议配置方法:
节点的实际可用分配CPU量 ≥ 当前实例所有容器CPU限制值之和 ≥ 当前实例所有容器CPU申请值之和,节点的实际可用分配CPU量请在“可分配资源”列下查看“CPU: ** Core”。
中对应节点的 - 内存配额:
表2 内存配额说明 参数
说明
内存申请
容器使用的最小内存需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配内存总量 ≥ 容器内存申请数时,才允许将容器调度到该节点。
内存限制
容器能使用的内存最大值。当内存使用率超出设置的内存限制值时,该实例可能会被重启进而影响工作负载的正常使用。
建议配置方法:
节点的实际可用分配内存量 ≥ 当前节点所有容器内存限制值之和 ≥ 当前节点所有容器内存申请值之和,节点的实际可用分配内存量请在“可分配资源”列下查看“内存: ** GiB”。
中对应节点的
可分配资源:可分配量按照实例请求值(request)计算,表示实例在该节点上可请求的资源上限,不代表节点实际可用资源。 计算公式为:
- 可分配CPU = CPU总量 - 所有实例的CPU请求值 - 其他资源CPU预留值
- 可分配内存 = 内存总量 - 所有实例的内存请求值 - 其他资源内存预留值
使用示例
以集群包含一个资源为4Core 8GB的节点为例,已经部署一个包含两个实例的工作负载到该集群上,并设置两个实例(实例1,实例2)的资源为{CPU申请,CPU限制,内存申请,内存限制}={1Core,2Core,2GB,2GB}。
那么节点上CPU和内存的资源使用情况如下:
- 节点CPU可分配量=4Core-(实例1申请的1Core+实例2申请的1Core)=2Core
- 节点内存可分配量=8GB-(实例1申请的2GB+实例2申请的2GB)=4GB
因此节点还剩余2Core 4GB的资源可供下一个新增的实例使用。