# 手动创建镜像快照
在运行容器前，需要先拉取指定的容器镜像。然而受到网络状况和容器镜像大小等因素影响，镜像拉取过程往往成为Pod启动的主要耗时环节。为加快启动速度，CCI 提供了镜像快照功能，该功能可以预先将所需镜像制作成快照，再基于该快照创建Pod，无需重新下载镜像，从而显著缩短Pod的启动时间。本章介绍如何手动创建镜像快照。如需了解镜像快照的工作原理，请参阅[镜像快照概述](https://support.huaweicloud.com/usermanual-cci2/cci_01_0112.html)。
#### 通过控制台创建镜像快照
1. 登录[云容器实例 CCI 2.0](https://console.huaweicloud.com/cci2.0/?#/cci/cluster/list)控制台。
2. 在左侧导航栏，单击"镜像加速"。
3. 单击右上角的"创建镜像快照"。
4. 在当前界面配置相关参数，具体请参见[表1]。配置完成后，单击右下角"创建镜像快照"。
    表1创建镜像快照 
   | 配置项名称             | 说明                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|
   | 镜像快照名称          | 自定义镜像快照名称。 说明： 请输入以小写字母开头，小写字母、数字、中划线（-）组成，小写字母或数字结尾的 1 到 190 字符的字符串。                                                                                                                                                                                                                                                                                |
   | 容器镜像           | 选择用于制作镜像快照的镜像。最多添加10个。                                                                                                                                                                                                                                                                                                                                                               |
   | 镜像快照大小          | 设置镜像快照大小。范围 10～400GiB，缓存的对象为解压后的镜像文件，占用空间与实际镜像压缩率相关，建议镜像快照大小不低于镜像大小总和的 3 倍。                                                                                                                                                                                                                                                                                                           |
   | 镜像快照保留时间      | 镜像快照的保留时间，过期将会被清理。"不限制"则表示永久保留。也可以自定义指定天数。                                                                                                                                                                                                                                                                                                                                            |
   | 命名空间            | 选择指定的命名空间。镜像快照制作过程中，需要在用户命名空间创建CCI实例。                                                                                                                                                                                                                                                                                                                                                 |
   | 使用弹性公网IP缓存公网镜像 | 设置是否自动为创建镜像快照实例创建弹性公网IP。请根据实际情况进行选择。 - 自动创建弹性公网IP：用户可以自定义线路、公网带宽和带宽大小。镜像快照制作完成后，创建的弹性公网IP会自动释放。  - 绑定弹性公网IP：使用已有弹性公网IP缓存公网镜像。  - 暂不使用：不使用弹性公网IP缓存公网镜像。   |
   | 镜像仓库访问凭证        | 添加镜像仓库访问凭证。每个镜像仓库必须配置一个kubernetes.io/dockerconfigjson类型的密钥。最多可添加10个。                                                                                                                                                                                                                                                                                                                 |
      
   
 
#### 通过YAML文件创建镜像快照
1. 登录[云容器实例 CCI 2.0](https://console.huaweicloud.com/cci2.0/?#/cci/cluster/list)控制台。
2. 在左侧导航栏，单击"镜像加速"。
3. 单击右上角的"YAML创建"。 参考以下示例，创建一个名为my-imagesnapshot的镜像快照。
   ```
   apiVersion: cci/v2
   kind: ImageSnapshot
   metadata:
     name: 'my-imagesnapshot'
     labels: 
       cci.io/image-snapshot-architecture: "amd64"    # 指定CPU架构标签
   spec:
     buildingConfig:
       namespace: test
       eipID: 3cxxxxe0-xxxx-xxxx-xxxx-8xxxxf3xxxx4     # 拉取公网镜像或跨VPC拉取时需要的弹性公网IP的ID
     imageSnapshotSize: 30                             # 快照容量大小（GiB）
     ttlDaysAfterCreated: 7                            # 快照生命周期（单位：天），过期自动清理
     images:
       # 非Docker Hub官方镜像仓库的需要写完整地址（域名/组织名称/镜像名称:Tag）     
       - image: 'swr.region.myhuaweicloud.com/your-organization/your-image:latest'
     registries:
       - imagePullSecret: imagepull-secret             # 访问SWR私有镜像仓库的拉取凭证
         server: swr.region.myhuaweicloud.com   # 镜像仓库地址（不带http://或https://前缀）
         plainHTTP: true
   ```
   表2参数说明 
   | 字段                                                               | 类型      | 必填   | 示例值                                 | 描述                                                                                                                                                                     |
   |:---|:---|:---|:---|:---|
   | .metadata.name                                                  | string     | 是   | my-imagesnapshot                    | 镜像快照名称。                                                                                                                                                               |
   | .spec.images.image                                                | string  | 是    | nginx:latest                        | 用于制作镜像快照的镜像。最多可添加10个。                                                                                                                                                   |
   | .spec.registries.server                                        | string  | 是  | xxxxx.myhuaweicloud.com             | 不带 http:// 或 https:// 前缀的镜像仓库地址。                                                                                                                                       |
   | .spec.registries.imagePullSecret                                 | string  | 否     | imagepull-secret                   | 访问镜像仓库使用的凭证Secret。最多可添加10个。                                                                                                                                             |
   | .spec.registries.plainHTTP                                     | boolean  | 否   | true                                 | 如果是使用HTTP协议的自建镜像仓库地址，需要设置为true，否则会因协议不同而导致镜像拉取失败。默认值为false。                                                                                                          |
   | .spec.registries.insecureSkipVerify                           | boolean  | 否  | true                                | 如果是使用自签发证书的自建镜像仓库地址，需要设置为true来跳过证书认证，否则会因证书认证失败而导致镜像拉取失败。默认值为false。                                                                                                   |
   | .spec.buildingConfig.namespace                                | string   | 是  | test                               | 用户命名空间。镜像快照制作过程中，需要在用户命名空间创建CCI实例。                                                                                                                                    |
   | .spec.buildingConfig.eipID                                     | string  | 否 | 3cxxxxe0-xxxx-xxxx-xxxx-8xxxxf3xxxx4 | 用于访问拉取公网镜像的EIP。                                                                                                                                                      |
   | .spec.buildingConfig.autoCreateEIP                              | boolean | 否   | true                                 | 在制作镜像快照时，是否自动为创建镜像快照实例创建弹性公网IP，当指定了eipId的情况下，autoCreateEIP配置将被忽略。当autoCreateEIP为true时，需通过autoCreateEIPAttribute指定弹性公网IP的配置。                                          |
   | .spec.buildingConfig.autoCreateEIPAttribute.bandwidthChargeMode | string  | 否   | bandwidth                          | 按流量计费还是按带宽计费。 取值范围：bandwidth，traffic，不填或者为空时默认是bandwidth。其中IPv6国外默认是bandwidth，国内默认是traffic。                                               |
   | .spec.buildingConfig.autoCreateEIPAttribute.bandwidthSize      | int      | 否  | 1000                                  | 带宽大小。 取值范围：按带宽计费时，默认为1\~2000Mbit/s。按流量计费时，默认为1\~300Mbit/s                                                                          |
   | .spec.buildingConfig.autoCreateEIPAttribute.type               | string  | 否  | 5_bgp                                 | EIP的类型。 取值范围：5_bgp（全动态BGP），5_sbgp（静态BGP），5_youxuanbgp（优选BGP）。                                                                             |
   | .spec.buildingConfig.autoCreateEIPAttribute.ipVersion           | int      | 否   | 4                                   | 弹性公网IP的版本。 4表示IPv4。不填或空字符串时，默认创建IPv4。                                                                                                     |
   | .spec.buildingConfig.TimeoutMinutes                             | int        | 否   | 1440                               | 镜像快照制作完成的超时时间，单位分钟。 取值范围：\[30, 10080\] 的整数，表示30分钟\~1周。默认值为1440，表示1天。                                                                      |
   | .spec.ttlDaysAfterCreated                                      | int      | 否  | 7                                  | 镜像快照保留时间，单位为天，过期将会被清理。默认值为0，即永不过期。 每当快照被负载/容器组资源使用时，其过期时间将被重置为当前时间加上快照保留时间。 说明： 快照过期后，仍会占用配额，需定期审核过期镜像快照后删除。 |
   | .spec.imageSnapshotSize                                         | int     | 否 | 30                                 | 镜像快照大小，单位为GiB，默认值为20。                                                                                                                                                  |
      
   除了配置基础参数外，您还可以通过添加 Labels（标签）来指定制作镜像快照时所使用的 CPU 架构，具体标签说明如[表3]所示。
    表3标签（Labels）说明 
   | 字段                                       | 类型    | 是否必选 | 示例值 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|:---|:---|:---|
   | .labels.cci.io/image-snapshot-architecture | string | 否   | amd64 | 指定镜像对应的CPU架构，取值范围： - amd64（默认值）  - arm64   说明： 当指定对应架构时，请确认局点是否开放对应的实例类型： - amd64------x86计算通用型  - arm64------鲲鹏通用型   |
      
   
 
