Alibaba Cloud menyediakan fitur ImageCache dari Elastic Container Instance dalam bentuk CustomResourceDefinition (CRD) ImageCache. Dengan fitur ini, Anda dapat memanfaatkan ImageCache dari Elastic Container Instance untuk mempercepat pembuatan pod di Kubernetes. Topik ini menjelaskan cara menggunakan ImageCache untuk mempercepat pembuatan pod.
Deskripsi konfigurasi
ImageCache adalah sumber daya tingkat kluster yang dapat digunakan untuk mempercepat pembuatan pod di berbagai namespace dalam sebuah kluster.
Saat membuat pod dengan menggunakan ImageCache, Anda dapat menambahkan anotasi ke metadata dalam file konfigurasi pod untuk mengaktifkan pencocokan otomatis cache gambar atau menentukan cache gambar yang ingin digunakan. Tabel berikut menjelaskan anotasi tersebut:
Kami merekomendasikan agar Anda mengaktifkan pencocokan otomatis cache gambar. Jika Anda mempercepat pembuatan pod dengan mengaktifkan pencocokan otomatis cache gambar dan menentukan cache gambar yang ingin digunakan, prioritas akan diberikan pada penentuan cache gambar. Untuk informasi lebih lanjut, lihat Ikhtisar Fitur ImageCache.
Anda dapat mengonfigurasi parameter
imc-perfect-matchatauimc-match-count-requestjika ingin menggunakan ImageCache untuk bisnis Anda dengan mengaktifkan pencocokan otomatis cache gambar. Kami merekomendasikan agar Anda mengonfigurasi parameterimc-perfect-match. Jika Anda mengonfigurasi kedua parameter tersebut, prioritas diberikan pada parameterimc-perfect-match.
Cara penggunaan ImageCache | Anotasi | Contoh nilai | Deskripsi |
Aktifkan pencocokan otomatis cache gambar | k8s.aliyun.com/eci-auto-imc | "true" | Menentukan apakah akan secara otomatis mencocokkan cache gambar. Nilai defaultnya adalah true, yang menunjukkan bahwa sistem secara otomatis mencocokkan cache gambar yang paling sesuai untuk membuat pod berdasarkan kebijakan pencocokan. Sistem memilih cache gambar berdasarkan urutan berikut: tingkat kesesuaian gambar, ukuran gambar, dan waktu pembuatan gambar. Jika tidak ada cache gambar yang cocok persis, sistem secara otomatis membuat cache gambar yang sesuai ketika sistem membuat pod. |
k8s.aliyun.com/imc-perfect-match | "true" | Menentukan apakah semua gambar kontainer dalam pod harus cocok dengan cache gambar. Nilai default: false. | |
k8s.aliyun.com/imc-match-count-request | "2" | Menentukan jumlah gambar kontainer dalam pod yang ingin Anda cocokkan persis dengan cache gambar. | |
Tentukan cache gambar yang ingin Anda gunakan | k8s.aliyun.com/eci-imc-id | imc-2zebxkiifuyzzlhl**** | Menentukan cache gambar untuk membuat pod. |
Anotasi harus ditambahkan ke metadata dalam file konfigurasi pod. Sebagai contoh, saat membuat Deployment, Anda harus menambahkan anotasi di bagian spec.template.metadata.
Untuk menggunakan fitur Elastic Container Instance, Anda hanya dapat menambahkan anotasi saat membuat pod berbasis Elastic Container Instance. Jika Anda menambahkan atau memodifikasi anotasi saat memperbarui pod, anotasi tersebut tidak akan berlaku.
Contoh konfigurasi
Saat membuat pod dengan menggunakan ImageCache, perhatikan hal-hal berikut:
Tentukan gambar dalam cache gambar untuk kontainer dalam pod guna meningkatkan tingkat kesesuaian.
Atur kebijakan penarikan gambar (ImagePullPolicy) kontainer dalam pod menjadi IfNotPresent untuk mencegah unduhan berulang lapisan gambar.
Contoh 1: Aktifkan pencocokan otomatis cache gambar
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-auto-imc: "true" # Mengaktifkan pencocokan otomatis cache gambar
k8s.aliyun.com/imc-perfect-match: "true" # Menentukan bahwa semua gambar kontainer dalam pod harus cocok dengan cache gambar.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
imagePullPolicy: IfNotPresent
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
imagePullPolicy: IfNotPresentContoh 2: Tentukan cache gambar untuk membuat pod
Pastikan bahwa cache gambar yang ditentukan berada dalam status Ready. Jika tidak, pod gagal dibuat.
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-imc-id: imc-2ze5tm5gehgtiiga**** # Menentukan cache gambar.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
imagePullPolicy: IfNotPresent