全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan ImageCache untuk mempercepat pembuatan contoh kontainer elastis

更新时间:Jul 06, 2025

Alibaba Cloud menyediakan fitur cache gambar untuk Elastic Container Instance melalui CustomResourceDefinition (CRD) ImageCache. Fitur ini mengurangi waktu yang diperlukan untuk menarik gambar kontainer dari repositori jarak jauh setiap kali contoh kontainer elastis dibuat di kluster Kubernetes. Topik ini menjelaskan cara membuat dan menggunakan ImageCache untuk mempercepat pembuatan contoh kontainer elastis.

Apa itu ImageCache

ImageCache adalah sumber daya yang didefinisikan oleh Elastic Container Instance untuk menyimpan lapisan gambar kontainer guna mempercepat pembuatan instans. Setiap ImageCache sesuai dengan satu cache gambar. Saat membuat contoh kontainer elastis, alih-alih mengunduh semua lapisan gambar, ImageCache memungkinkan instans menggunakan lapisan yang telah dicache sebelumnya. Hal ini mengurangi waktu mulai kontainer, terutama untuk gambar besar atau dalam kondisi jaringan yang tidak stabil. Untuk informasi lebih lanjut, lihat Ikhtisar Cache Gambar.

Catatan

Penghematan waktu bergantung pada ukuran gambar, jumlah lapisan, dan kondisi jaringan.

Tagihan

Biaya dapat berlaku selama pembuatan dan penggunaan ImageCache. Untuk informasi lebih lanjut, lihat Penagihan Cache Gambar.

Prosedur

Langkah 1: Terapkan CRD ImageCache

Jalankan perintah berikut untuk memeriksa apakah kluster Anda mendukung ImageCache:

kubectl get crd/imagecaches.eci.alibabacloud.com
  • Jika informasi tentang imagecaches.eci.alibabacloud.com ditampilkan, kluster Anda mendukung ImageCache.

  • Jika pesan kesalahan muncul, perbarui komponen ACK Virtual Node ke versi terbaru untuk mengaktifkan ImageCache.

Langkah 2: Buat ImageCache

Anda dapat membuat ImageCache dengan dua cara: otomatis atau manual. Untuk efisiensi biaya, disarankan menggunakan pembuatan ImageCache otomatis, kecuali jika Anda memerlukan percepatan segera untuk instance Elastic Container Instance baru. Untuk informasi lebih lanjut mengenai perbedaan antara ImageCache yang dibuat secara manual dan otomatis, lihat Metode untuk membuat cache gambar.

Metode

Deskripsi

Pembuatan otomatis

Anda dapat mengaktifkan pencocokan otomatis ImageCache saat membuat contoh kontainer elastis. Kemudian, jika tidak ada ImageCache yang cocok, sistem akan secara otomatis membuat ImageCache saat sistem membuat contoh kontainer elastis. Cache ini kemudian dapat digunakan untuk mempercepat pembuatan contoh kontainer elastis di masa depan dengan gambar yang sama.

Pembuatan manual

Jika Anda membuat contoh kontainer elastis untuk pertama kalinya dan Anda ingin pembuatan menjadi secepat mungkin, Anda dapat membuat ImageCache secara manual terlebih dahulu dengan menggunakan template YAML. Untuk informasi lebih lanjut, lihat Kelola ImageCache dan Anotasi cache gambar.

Catatan
  • Untuk menghemat biaya, gunakan ImageCache otomatis kecuali untuk akselerasi selama pembuatan pertama kali.

  • Untuk informasi lebih lanjut tentang perbedaan antara metode pembuatan otomatis dan manual, lihat Metode untuk Membuat ImageCache.

Langkah 3: Gunakan ImageCache untuk membuat contoh kontainer elastis

Saat Anda membuat instance kontainer elastis dari ImageCache, Anda dapat secara otomatis mencocokkan sebuah ImageCache atau secara manual menentukan satu.

Kami menyarankan Anda untuk mengaktifkan pencocokan otomatis dan mengonfigurasi parameter imc-perfect-match guna mendapatkan pencocokan yang lebih ketat. Jika baik imc-perfect-match maupun imc-match-count-request dikonfigurasi, maka yang pertama akan diutamakan. Apabila baik pencocokan otomatis maupun penentuan manual dikonfigurasi, yang terakhir akan diutamakan. Untuk informasi lebih lanjut, lihat Ikhtisar cache gambar.

Tabel berikut menjelaskan anotasi utama yang digunakan:

Metode pencocokan

Anotasi

Contoh

Deskripsi

Pencocokan otomatis

k8s.aliyun.com/eci-auto-imc

"true"

Menentukan apakah akan secara otomatis mencocokkan cache gambar. Nilai default adalah true, yang menunjukkan bahwa sistem secara otomatis mencocokkan ImageCache yang paling sesuai untuk membuat contoh kontainer elastis berdasarkan kebijakan pencocokan. Sistem memilih ImageCache berdasarkan urutan berikut: tingkat kecocokan gambar, ukuran gambar, dan waktu pembuatan gambar. 

Jika tidak ada ImageCache yang cocok persis, sistem secara otomatis membuatnya saat sistem membuat contoh kontainer elastis. 

k8s.aliyun.com/imc-perfect-match

"true"

Menentukan apakah semua gambar kontainer dalam pod harus sepenuhnya cocok dengan ImageCache. Nilai default: false. 

k8s.aliyun.com/imc-match-count-request

"2"

Menentukan jumlah gambar kontainer dalam pod yang harus persis cocok dengan ImageCache. 

Penentuan manual

k8s.aliyun.com/eci-imc-id

imc-2zebxkiifuyzzlhl****

Menentukan cache gambar untuk membuat pod. 

Konfigurasi contoh

ImageCache merupakan sumber daya tingkat kluster yang dapat digunakan di berbagai namespace.

  • Anotasi harus ditambahkan ke bagian metadata dalam file konfigurasi pod. Sebagai contoh, dalam Deployment, tambahkan anotasi di bawah spec.template.metadata.

  • Anotasi hanya berlaku saat membuat contoh kontainer elastis. Menambahkan atau memodifikasi anotasi untuk contoh yang sudah ada tidak akan berpengaruh.

  • Fitur Elastic Container Instance Effect dalam eci-profile secara dinamis menambahkan anotasi terkait ImageCache ke pod berdasarkan kondisi tertentu. Jika anotasi tidak ada dalam file YAML pod, Anda dapat mengonfigurasi eci-profile, dan sistem akan menerapkannya secara otomatis tanpa pembaruan manual. Untuk informasi lebih lanjut, lihat Konfigurasikan eci-profile untuk Menggunakan Fitur ImageCache Secara Otomatis.

Penting
  • Pencocokan Gambar: Tentukan gambar dalam cache untuk meningkatkan tingkat kecocokan dan memanfaatkan sepenuhnya caching.

  • Kebijakan Penarikan: Atur ImagePullPolicy ke IfNotPresent untuk menghindari unduhan berulang lapisan gambar.

Cocokkan ImageCache secara otomatis

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: IfNotPresent

Tentukan ImageCache

Penting

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