阿里云以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列表。
|
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
創建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
查看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