创建镜像快照
运行容器需要先拉取指定的容器镜像,但因网络和容器镜像大小等因素,镜像拉取耗时往往成了Pod启动的主要耗时。通过镜像快照功能,可以事先将要使用的镜像制作成快照,基于该快照创建Pod,从而避免镜像下载,提升Pod的启动速度。
要了解镜像快照的工作原理,请参阅镜像快照概述。
创建镜像快照
假如镜像快照定义的文件名称为my-imagesnapshot.yaml,则执行kubectl apply -f my-imagesnapshot.yaml即可创建镜像快照,-f 表示从文件创建。
# kubectl apply -f my-imagesnapshot.yaml
以下示例创建一个名为my-imagesnapshot的镜像快照。
apiVersion: imagecache.cci.io/v1
kind: ImageSnapshot
metadata:
name: "my-imagesnapshot"
spec:
images:
- image: serverA.com/xx/redis
- image: nginx:latest
- image: redis
registries:
- server: serverA.com
username: userA
password: pwdA
- server: serverB.com
username: userB
password: pwdB
plainHTTP: true
- server: serverC.com
username: userC
password: pwdC
insecureSkipVerify: true
buildingConfig:
namespace: my-namespace-a
evsInfo:
volumeType: ssd
volumeSizeGiB: 30
filesystemType: ext4
ttlDaysAfterCreated: 20
名称 |
类型 |
必填 |
示例值 |
描述 |
---|---|---|---|---|
name |
string |
是 |
my-imagesnapshot |
镜像快照名称。 |
image |
string |
是 |
nginx:latest |
用于制作镜像快照的镜像。 |
server |
string |
是 |
serverA.com |
不带 http:// 或 https:// 前缀的镜像仓库地址。 |
username |
string |
否 |
userA |
镜像仓库用户名。 |
password |
string |
否 |
pwdA |
镜像仓库密码。 |
plainHTTP |
boolean |
否 |
true |
如果是使用HTTP协议的自建镜像仓库地址,需要设置为true,否则会因协议不同而导致镜像拉取失败。默认值为false。 |
insecureSkipVerify |
boolean |
否 |
true |
如果是使用自签发证书的自建镜像仓库地址,需要设置为true来跳过证书认证,否则会因证书认证失败而导致镜像拉取失败。默认值为false。 |
namespace |
string |
是 |
my-namespace-a |
用户命名空间。镜像快照制过程需要在用户命名空间创建CCI实例。 |
evsInfo |
EVSInfo |
否 |
/ |
镜像快照的EVS云盘配置。 |
volumeType |
string |
否 |
ssd |
镜像快照的磁盘类型。默认为ssd。 |
volumeSizeGiB |
integer |
否 |
20 |
镜像快照大小,单位Gi。默认为20。 |
filesystemType |
string |
否 |
ext4 |
镜像快照的磁盘文件系统类型。当前只支持ext4。 |
ttlDaysAfterCreated |
integer |
否 |
10 |
镜像快照保留时间,过期将会被清理。默认值为0,即永不过期。
说明:
快照过期后,仍会占用配额,需定期审核过期镜像快照后删除。 |