You need to enable JavaScript to run this app.
导航

指定容器 vCPU 和内存创建通用型实例

最近更新时间2024.02.07 16:36:59

首次发布时间2021.11.04 14:08:18

弹性容器实例支持通过特定 Annotation 指定实例规格族和子网,同时指定容器 vCPU 和内存方式创建通用型实例。

使用限制

前提条件

Kubernetes 方式创建

您可以直接定义对应 Container 的 request、limit 来指定该容器的 vCPU 和内存。同时,您也可以通过添加 Annotation,指定规格族创建 VCI 实例。指定规格族相应 Annotation 说明,如下所示。

Annotation KeyAnnotation Value 示例值说明是否必填

vci.vke.volcengine.com/preferred-instance-family

vci.u1

通用型 中的实例 规格族

说明

非必填

不同地域和可用区默认规格族说明表

Region可用区默认规格族
cn-beijing可用区 A:cn-beijing-avci.u1
可用区 B:cn-beijing-bvci.u1
可用区 C:cn-beijing-cvci.u1
cn-shanghai可用区 A:cn-shanghai-avci.n1
可用区 B:cn-shanghai-bvci.n2i
cn-guangzhou可用区 A:cn-guangzhou-avci.n1

以创建无状态负载(Deployment)为例,完整的示例代码如下所示:

说明

更多 Annotation 相关说明,请参见 Pod Annotation 说明

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        vke.volcengine.com/burst-to-vci: enforce  #强制使用 VCI
        vke.volcengine.com/preferred-subnet-ids: subnet-3tispp1nai**** #指定子网 ID,可指定同一个可用区内多个子网,多个子网之间用半角逗号(,)分隔
        vci.vke.volcengine.com/preferred-instance-family: vci.u1 #指定 VCI 的规格族
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: cr-cn-beijing.volces.com/tw/nginx:1.0 # 容器镜像的地址和版本,请配置为您自己的镜像地址
        ports:
        - containerPort: 80
        resources:
          requests:  #指定容器的 vCPU 和内存  
            cpu: "500m"      
            memory: "1024Mi"
          limits:
            cpu: "1"      
            memory: "2048Mi"

控制台方式创建

在 VPC-CNI 集群中 创建工作负载 时,配置以下参数:

  1. 配置 基本信息 时:选择 以弹性容器实例方式部署
    alt
  2. 配置 容器配置 时:资源配额 处,按需设置 CPU、内存请求和上限。
    alt
  3. 配置 高级配置 时:实例注解 处,添加指定规格族注解(Annotation)。

    说明

    不同规格族实例的 实例注解 配置不同:

    alt

Pod 规格计算方式

指定容器 vCPU 和内存创建实例时的 Pod 规格计算方式如下所示:

  1. 分别计算 Pod 的 CPU、内存的上限合计数值:

    • CPU 合计数值 = Pod 内 所有 Init 容器的 CPU 上限最大值所有应用容器的 CPU 上限之和 两者中,数值较大者。
    • 内存合计数值 = Pod 内 所有 Init 容器的内存上限最大值所有应用容器的内存上限之和 两者中,数值较大者。
    • Pod 内容器未设置内存上限,或者 CPU 上限,则该项的限制以 0 计算。以下图为例,图中 容器2 未设置内存上限,那么计算 Pod 规格时 容器2 的内存上限为 0(实际上限按 Pod 规格限制)。
      alt
  2. 根据合计数值,系统自动规整 Pod 规格,且按自动规整后的实例规格计费。规整方法如下所示:

    合计数值计算方法

    CPU 合计数值 = 0

    内存合计数值 = 0

    默认使用 2 核 4 GiB 实例规格。

    CPU 合计数值 = 0;内存合计数值 != 0

    CPU 合计数值 != 0;内存合计数值 = 0

    1. 先匹配非 0 项,并按照该项的规格,选择与之一致或者相近的较大实例规格。

      若超出非 0 项的最大规格,则创建实例失败。

    2. 再匹配 0 项,选择大于 0 的相近实例规格。

    CPU 合计数值 != 0

    内存合计数值 != 0

    1. 先匹配 CPU 合计数值,选择一致或相近的较大实例规格。

      如超出最大 CPU 规格,则创建实例失败。

    2. 再匹配内存合计数值,选择一致或相近的较大实例规格。

      如超出该 CPU 支持的最大内存规格,则创建实例失败。