Alibaba Cloud menyediakan fitur ImageCache dari Elastic Container Instance melalui CustomResourceDefinition (CRD) ImageCache. Dengan fitur ini, Anda dapat mempercepat pembuatan pod berbasis Elastic Container Instance di Kubernetes. Topik ini menjelaskan tentang ImageCaches serta cara membuat, menanyakan, dan menghapus sebuah ImageCache.
Buat persiapan
Masuk ke kluster Kubernetes Anda dan jalankan perintah berikut untuk memeriksa apakah kluster mendukung ImageCaches:
kubectl get crd/imagecaches.eci.alibabacloud.comJika terjadi kesalahan, kluster tidak mendukung ImageCaches. Contoh keluaran:
Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "imagecaches.eci.alibabacloud.com" not foundJika kluster Anda tidak mendukung ImageCaches, perbarui komponen ack-virtual-node ke versi yang mendukung ImageCaches.
CatatanDisarankan untuk memperbarui komponen ack-virtual-node ke versi terbaru agar dapat menggunakan fitur baru.
Untuk informasi tentang versi ack-virtual-node, lihat ack-virtual-node.
Untuk informasi tentang cara memperbarui ack-virtual-node, lihat Kelola komponen sistem.
Jika informasi tentang imagecaches.eci.alibabacloud.com dikembalikan, kluster Kubernetes Anda mendukung ImageCaches. Contoh keluaran:
NAME CREATED AT imagecaches.eci.alibabacloud.com 2024-01-23T05:54:44ZJika CRD ImageCache di kluster Anda bukan versi terbaru, disarankan untuk menjalankan perintah
kubectl applyguna memperbarui CRD ImageCache ke versi terbaru.kubectl apply -f imagecache-crd-sample.yaml
Konfigurasikan ImageCache
Kode berikut menunjukkan file konfigurasi YAML untuk ImageCache. Untuk informasi lebih lanjut, lihat Kubernetes ImageCache API.
apiVersion: eci.alibabacloud.com/v1
kind: ImageCache
metadata:
name: imagecache-sample
annotations:
k8s.aliyun.com/imc-enable-reuse: "true" # Mengaktifkan fitur penggunaan ulang ImageCache.
spec:
images:
- centos:latest
- busybox:latest
imagePullSecrets:
- default:secret1
- default:secret2
- kube-system:secret3
imageCacheSize:
25
retentionDays:
7Deskripsi parameter:
Parameter | Tipe | Diperlukan | Deskripsi |
spec.images | String[] | Ya | Gambar kontainer yang dapat digunakan untuk membuat ImageCache. |
spec.imagePullSecrets | String[] | Tidak | Rahasia repositori gambar pribadi.
|
spec.imageCacheSize | int | Tidak | Ukuran ImageCache. Satuan: GiB. Nilai default: 20. Nilai valid: 20 hingga 32768. Tetapkan nilai berdasarkan ukuran gambar. Ukuran ImageCache harus lebih besar atau sama dengan dua kali ukuran gambar. |
spec.retentionDays | int | Tidak | Periode retensi ImageCache. Ketika periode retensi yang ditentukan berakhir, ImageCache akan dihapus. Satuan: hari. Parameter ini kosong secara default, yang menunjukkan bahwa ImageCache tidak pernah kedaluwarsa. |
Anda dapat menambahkan anotasi ke file konfigurasi YAML ImageCache untuk memanfaatkan sepenuhnya fitur ImageCache. Sebagai contoh, dalam file YAML sebelumnya, anotasi k8s.aliyun.com/imc-enable-reuse: "true" ditambahkan untuk mengaktifkan fitur penggunaan ulang ImageCache. Untuk informasi lebih lanjut, lihat Anotasi ImageCache.
Buat ImageCache
Buat ImageCache.
kubectl create -f imagecache-test.yamlContoh file imagecache-test.yaml:
apiVersion: eci.alibabacloud.com/v1 kind: ImageCache metadata: name: imagecache-sample-test annotations: k8s.aliyun.com/imc-enable-reuse: "true" # Mengaktifkan fitur penggunaan ulang ImageCache. spec: images: - registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2 - registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30 imageCacheSize: 25 retentionDays: 7Lihat status ImageCache.
kubectl get imagecache imagecache-sample-testKode sampel berikut menunjukkan contoh keluaran. Jika ImageCache berada dalam status Ready, ImageCache telah dibuat dan siap digunakan.
NAME AGE CACHEID PHASE PROGRESS imagecache-sample-test 5m30s imc-2ze2kbf9l1onf03z**** Ready 100%
Menanyakan ImageCache
Anda dapat menanyakan detail tentang ImageCache atau daftar ImageCache di kluster.
Menanyakan daftar ImageCache di kluster
kubectl get imagecacheMenanyakan detail tentang ImageCache
kubectl get imagecache <imagecache-name> -o yaml
Hapus ImageCache
ImageCache adalah snapshot. Jika Anda ingin mempertahankan ImageCache yang Anda buat secara manual, Anda harus membayar biaya snapshot. Jika Anda tidak lagi menggunakan ImageCache, disarankan untuk menghapusnya secara manual sesegera mungkin.
Untuk menghapus ImageCache, jalankan perintah berikut:
kubectl delete imagecache <imagecache-name>