You need to enable JavaScript to run this app.
导航
指定 VCI 规格创建通用型实例
最近更新时间:2025.01.17 14:40:36首次发布时间:2025.01.17 14:40:36

弹性容器实例支持指定 VCI 规格来创建 VCI 实例。本文主要介绍指定 VCI 规格创建 通用型 实例的方法。

使用限制

  • 通用型 中每个规格族支持的地域和可用区不同,详情请参见 地域和可用区
  • 若指定 VCI 规格后,未设置容器的规格(spec.resource)时,按照指定的规格创建 Pod。若指定 VCI 规格的同时设置了容器的规格,按照本文下方 Pod 规格计算方式 中说明的方法,计算 Pod 规格。

前提条件

Kubernetes 方式创建

创建 Pod 或者工作负载(包括 Deployment、StatefulSet、Job、CronJob)时,通过添加 Annotation,指定 VCI 规格创建实例。

Annotation 说明,如下所示。

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

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

vci.u1.2c-4gi

通用型 中的实例规格。
指定实例规格时,包含 CPU 数量、内存数量等。可通过定义各容器的请求(Request)、上限(Limit)来指定该容器的 vCPU、内存数量。规格详细信息,请参见 通用型

说明

  • 该 Annotation 的 GPU 计算型 取值说明,请参见 指定 VCI 规格创建 GPU 计算型实例
  • 按照指定的实例规格计费。计费说明,请参见 产品计费
  • 支持指定多个规格(Annotation Value),多个规格之间以半角逗号(,)分隔,并按照前后顺序排列优先级。

本场景必填

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

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。
        vci.vke.volcengine.com/preferred-instance-types: vci.u1.2c-4gi #指定通用型实例规格。
      labels:
        app: nginx
    spec:
      containers:
        - image: cr-cn-beijing.volces.com/tw/nginx:1.0 # 容器镜像的地址和版本,请配置为您自己的镜像地址。若使用公网镜像,请确保您的集群能够访问公网。
        imagePullPolicy: Always
        name: nginx
        resources:
          requests:  #指定容器的 vCPU、内存、GPU。
            cpu: "2"      
            memory: "4096Mi"
          limits:
            cpu: "4"      
            memory: "8192Mi"

控制台方式创建

在 VCI 业务集群中 创建工作负载 时,配置以下参数:

  1. 配置 基本信息 时:算力类型 选择 弹性容器实例 VCI
    alt
  2. 配置 容器配置 时:资源配额 处,按需设置 CPU、内存请求和上限。
    alt
  3. 配置 高级配置 时:VCI 规格配置 处,配置实例规格。
    alt

Pod 规格计算方式

指定的 VCI 规格与容器的 vCPU 和内存设置冲突时,系统按如下方式处理:

合计数值计算方法

CPU 合计数值 = 0

内存合计数值 = 0

使用 Annotation 指定的 VCI 规格。

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

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

匹配非 0 项:

  • 若该项的规格大于 Annotation 指定的规格:系统报错,创建实例失败。
  • 若该项的规格小于等于 Annotation 指定的规格:使用 Annotation 指定的规格。

CPU 合计数值 != 0

内存合计数值 != 0

  1. 先匹配 CPU 合计数值:
    • 若该项大于 Annotation 指定的规格:系统报错,创建实例失败。
    • 若该项小于等于 Annotation 指定的规格:继续匹配内存合计值。
  2. 匹配内存合计数值:
    • 若该项大于 Annotation 指定的规格:系统报错,创建实例失败。
    • 若该项大于 Annotation 指定的规格:使用 Annotation 指定的规格。

合计值 说明:

  • CPU 合计数值 = Pod 内 所有 Init 容器的 CPU 上限最大值所有应用容器的 CPU 上限之和 两者中,数值较大者。

    说明

    如果某个 Init/应用容器没有配置 CPU 上限,则该容器按 CPU 请求值计算。

  • 内存合计数值 = Pod 内 所有 Init 容器的内存上限最大值所有应用容器的内存上限之和 两者中,数值较大者。

    说明

    如果某个 Init/应用容器没有配置内存上限,则该容器按内存请求值计算。

  • 若 Pod 内某个容器同时未设置内存的上限和请求,或者 CPU 的上限和请求,则该项的数值以 0 计算。