更新时间:2025-08-07 GMT+08:00
分享

增加预留系统开销

在CCI 2.0运行的pod,辅助pod容器运行的系统组件会占用少量底层资源,因此在某些场景下,pod会出现实际内存使用无法达到pod规格内存的情况。因此针对此类场景,提供2个开关用以预留系统组件开销。

pod的annotation "resource.cci.io/memory-reservation" :是否开启预留系统开销。默认为"false",开启为"true"。开启后,CCI 2.0会为pod实例的系统组件预留1Gi的内存,且如果超出当前pod规格,会自动向上规整到最近的规格。以规整后的规格进行计费。

pod的annotation "resource.cci.io/memory-burst-size" :是否扩大容器的内存资源隔离上限。默认为"false",开启为"true"。开启后,会调整pod的所有容器的limit.memory资源到最大(即pod规格的内存大小),以此扩大宿主环境的cgroup内存上限;可以让开启预留系统开销开关后,且因自动规格后升阶的pod,得以将被cgroup限制的内存释放出来,供给应用容器使用。

表1 开启预留系统开销举例

场景描述

Pod配置

实际申请资源量

规整后规格

在CCI运行Pod的最终规格

说明

单容器,仅配置request,开启预留系统开销,开启扩大容器的内存资源隔离上限

annotations:
  "resource.cci.io/memory-reservation": "true"
  "resource.cci.io/memory-burst-size": "true"
...
containers:
  - resources:
      requests:
        cpu: '1.5'
        memory: 2Gi

1.5c3Gi

2c4Gi

containers:
  - resources:
      limits:
        memory: 4Gi
      requests:
        cpu: '1.5'
        memory: 2Gi

计算流程如下:

1. 只有request,看request值计算资源申请量(1.5c2Gi)

2. 开启了预留系统开销,追加1Gi内存(1.5c3Gi)

3. 按照4.3.1节规整规则,自动向上规整后(2c4Gi)

4. 开启扩大容器的内存资源隔离上限,设置所有容器的limit资源到4Gi

相关文档