文档

管理ImageCache

更新时间:

阿里云以ImageCache CRD的方式将ECI的镜像缓存功能提供给Kubernetes用户,以便Kubernetes用户也可以使用该功能来加速创建Pod。本文介绍ImageCache资源,以及如何创建、查询和删除ImageCache。

前提条件

自建Kubernetes集群中已部署ImageCache CRD。具体操作,请参见部署ImageCache CRD

ImageCache配置说明

ImageCache的YAML配置文件如下,更多信息,请参见kubernetes ImageCache API

apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
  name: imagecache-sample
  annotations:
    k8s.aliyun.com/imc-enable-reuse: "true" #开启镜像缓存复用
spec:
  images:
  - centos:latest
  - busybox:latest
  imagePullSecrets:
  - default:secret1
  - default:secret2
  - kube-system:secret3
  imageCacheSize:
   25
  retentionDays:
   7

相关参数说明如下:

名称

类型

是否必选

描述

spec.images

String[]

用于创建镜像缓存的容器镜像列表。

spec.imagePullSecrets

String[]

镜像仓库对应的Secret列表。

  • 如果镜像列表中包含私有仓库的镜像,则需要为私有镜像仓库创建Secret,然后按照namespace:secretName的格式设置该参数。

  • 如果镜像列表中的镜像均为公有镜像,则无需设置该参数。

spec.imageCacheSize

int

镜像缓存大小。默认为20 GiB。取值范围为20~32768 GiB。

spec.retentionDays

int

镜像缓存保留时长,过期会被清理。单位为天。默认永不过期。

说明

ImageCache支持添加Annotation来充分使用镜像缓存功能,例如:在上述YAML示例中,添加了k8s.aliyun.com/imc-enable-reuse: "true" 的Annotation来开启镜像缓存复用。更多信息,请参见ImageCache Annotation

创建ImageCache

  1. 创建ImageCache。

    kubectl create -f imagecache-test.yaml

    imagecache-test.yaml的内容示例如下:

    apiVersion: eci.alibabacloud.com/v1
    kind: ImageCache
    metadata:
      name: imagecache-sample-test
      annotations:
        k8s.aliyun.com/imc-enable-reuse: "true" #开启镜像缓存复用
    spec:
      images:
      - centos:latest
      - busybox:latest
      imagePullSecrets:
      - default:secret1
      - default:secret2
      - kube-system:secret3
      imageCacheSize:
       25
      retentionDays:
       7
  2. 查看ImageCache状态。

    kubectl get imagecache imagecache-sample-test

    返回结果示例如下:

    NAME                              AGE   CACHEID                               PHASE   PROGRESS
    imagecache-sample-test            20h   imc-2zeditzeoemfhqor****              Ready    100%

查询ImageCache

创建ImageCache后,您可以根据需要查询集群下所有ImageCache列表或者查看某个ImageCache的详细信息:

  • 查询集群下所有ImageCache列表

    kubectl get imagecache
  • 查看某个ImageCache的详细信息

    kubectl get imagecache/imagecache-sample-test -o yaml

删除ImageCache

ImageCache对应一份快照。对于手动创建的ImageCache,保留需要支付快照费用,如果不再使用,建议您及时手动删除。

如果想要删除某个ImageCache,可执行如下命令:

kubectl delete imagecache/imagecache-sample-test

  • 本页导读 (1)
文档反馈