在创建容器(Container)过程中,镜像拉取往往耗时较长,目前弹性容器实例支持使用自动镜像缓存方案,加速 VCI 实例的创建过程。
说明
【邀测·申请试用】:该功能目前处于邀测阶段,如需使用,请提交申请。
使用自动镜像缓存方案加速创建 VCI 实例有如下使用限制。
限制项 | 限制说明 |
---|---|
镜像缓存盘(云盘) | 默认仅提供 40 GiB 的存储空间,若识别到目标容器镜像所需要的缓存容量空间超过 40 GiB 时,需要单独指定所需的存储空间,否则镜像缓存可能会创建失败。 |
镜像缓存快照 | 镜像缓存有效期为 15 天,过期后再次使用镜像创建云盘的耗时会变长,且可能导致云盘创建失败。 说明
|
镜像缓存能力限制 |
|
准备创建 VCI 实例时使用的容器镜像。支持使用火山引擎镜像仓库(CR)中的镜像,也支持使用第三方镜像仓库中的镜像。
本文以使用 CR 中的镜像为例。上传镜像到 CR 的操作,请参见 推送和拉取镜像。
创建 VCI 实例前请确认需要使用的容器镜像是否为新的镜像。若为新镜像,则需要通过添加提前完成镜像的缓存和预热。
说明
新的镜像是指镜像名称、镜像版本、镜像层数据等与已有的镜像不一致的容器镜像。
建议先创建少量的 Pod 实例来触发和完成自动镜像缓存的创建。下文以创建包含 1 个 Pod 实例,且以弹性容器实例方式部署的无状态负载(VCI Deployment)为例。详细的操作说明,请参见 指定容器 vCPU 和内存创建实例。
vci.vke.volcengine.com/enable-auto-create-imc:"true"
。注意
VCI 默认仅提供 40 GiB 的存储空间用于镜像缓存,若识别到目标容器镜像所需要的缓存容量空间较大时,需要在本步骤添加额外的 Annotation:vci.vke.volcengine.com/auto-imc-disk-size:"具体容量大小"
(单位为 GiB)来指定所需的镜像缓存盘大小,例如需要 80 GiB 容量,则 Annotation 为vci.vke.volcengine.com/auto-imc-disk-size:"80"
。
vci-deployment.yaml
代码如下:apiVersion: apps/v1 kind: Deployment metadata: name: vci-deploymen spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: annotations: vke.volcengine.com/burst-to-vci: enforce # 强制使用 VCI vci.vke.volcengine.com/enable-auto-create-imc: "true" # 开启自动镜像缓存 vke.volcengine.com/preferred-subnet-ids: subnet-3tispp1nai**** # 指定子网 ID vci.vke.volcengine.com/preferred-instance-family: vci.n2i # 指定 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"
kubectl apply -f vci-deployment.yaml
通过弹性容器实例提供的 OpenAPI:ListImageCaches,查询当前火山引擎账号下所有的镜像缓存文件信息。
注意
仅当自动创建的镜像缓存状态为 [Ready.Ok] 时,才能正常匹配和使用自动创建的镜像缓存来创建 VCI 实例。
确认待使用的镜像缓存可用后,即可通过该镜像缓存,大批量创建 VCI 实例相关的 Pod。有如下两种使用方式:
说明
vci.vke.volcengine.com/desired-system-storage
,Annotation Value 请根据如下原则设置:
镜像大小 * (2~2.5倍)
。例如您创建 VCI 实例时选择的镜像大小为 20 GiB,那么您需要指定的系统盘大小为 40 GiB~50 GiB。镜像缓存大小 + 20 GiB
。例如您的镜像缓存大小为 60 GiB,那么您需要指定的系统盘大小为 80 GiB。创建 VCI 实例时,选择已经完成自动缓存的镜像。详细操作,请参见 创建实例。
系统根据匹配策略自动匹配最优的镜像缓存来创建 VCI 实例。自动匹配镜像缓存策略,请参见 使用镜像缓存。
说明
若未执行 步骤二 操作,则需要在 VCI 实例的spec·template·metadata
下添加特定的 Annotation:vci.vke.volcengine.com/enable-auto-create-imc:"true"
,开启自动镜像缓存。
在 VCI 实例的spec·template·metadata
下添加特定的 Annotation:vci.vke.volcengine.com/image-cache-id:imc-3uqroqkx0i3j********
,指定镜像缓存 ID。详细操作,请参见 创建实例。
VCI 实例在创建过程中,会直接使用指定的镜像缓存来创建。
注意
弹性容器实例会对通过vci.vke.volcengine.com/image-cache-id
指定的镜像缓存状态,进行前置校验。请确保指定的镜像缓存处于 [Ready.Ok] 状态,否则将报错,无法成功创建 VCI Pod。
镜像缓存有配额管理机制,限制一个火山引擎账号下可允许保留的最大的镜像缓存数量。您可以手动对已有的镜像缓存进行管理。建议策略如下: