All Products
Search
Document Center

Elastic Container Instance:Gunakan ImageCache untuk mempercepat pembuatan pod

Last Updated:Aug 25, 2026

Mengambil gambar kontainer dari registri saat pembuatan pod menimbulkan latensi, terutama untuk gambar berukuran besar atau di lingkungan dengan akses jaringan yang lambat. ImageCache adalah fitur Elastic Container Instance (ECI) yang tersedia sebagai CustomResourceDefinition (CRD) Kubernetes. Tambahkan anotasi ke metadata pod Anda agar ECI mencocokkan cache gambar yang telah dibuat sebelumnya saat pembuatan pod, sehingga lapisan gambar sudah tersedia di disk alih-alih ditarik dari registri.

Anotasi hanya berlaku saat pod dibuat. Menambahkan atau mengubah anotasi pada pod yang sudah ada tidak memiliki efek.

Cara kerja

  1. Buat resource ImageCache yang berisi gambar yang digunakan oleh pod Anda.

  2. Tambahkan anotasi ke spec.template.metadata dalam manifes pod atau Deployment Anda.

  3. Saat ECI membuat pod, anotasi tersebut dicocokkan dengan resource ImageCache yang tersedia dan lapisan yang telah di-cache dipasang, sehingga proses pengambilan gambar dilewati.

ImageCache adalah resource tingkat kluster. Pod di namespace mana pun dalam kluster dapat menggunakannya.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster Kubernetes dengan ECI yang diaktifkan

  • Setidaknya satu resource ImageCache dalam status Ready (diperlukan saat menggunakan pinning dengan eci-imc-id)

Anotasi

Tambahkan anotasi berikut ke bagian metadata spesifikasi pod Anda. Untuk Deployment, letakkan di spec.template.metadata.

AnotasiNilai contohDefaultDeskripsi
k8s.aliyun.com/eci-auto-imc"true""true"Mengaktifkan pencocokan cache gambar otomatis. ECI memilih cache terbaik berdasarkan tingkat kecocokan gambar, ukuran gambar, dan waktu pembuatan. Jika tidak ada cache yang cocok, ECI akan membuatnya secara otomatis.
k8s.aliyun.com/imc-perfect-match"true""false"Mengharuskan semua gambar kontainer dalam pod sesuai dengan cache gambar.
k8s.aliyun.com/imc-match-count-request"2"Menentukan jumlah gambar kontainer dalam pod yang ingin Anda cocokkan secara tepat dengan cache gambar.
k8s.aliyun.com/eci-imc-idimc-2zebxkiifuyzzlhl****Mengaitkan pod ke cache gambar tertentu.

Aturan prioritas

Saat beberapa anotasi ditetapkan, aturan prioritas berikut berlaku:

  • eci-imc-id (mengaitkan ke cache tertentu) menggantikan pencocokan otomatis (eci-auto-imc).

  • Dalam pencocokan otomatis, imc-perfect-match menggantikan imc-match-count-request jika keduanya ditetapkan. Lebih disarankan menggunakan imc-perfect-match.

Contoh konfigurasi

Untuk hasil terbaik pada kedua contoh berikut:

  • Gunakan gambar yang sudah termasuk dalam resource ImageCache untuk memaksimalkan tingkat hit cache.

  • Tetapkan imagePullPolicy: IfNotPresent pada setiap kontainer untuk melewati pengunduhan lapisan yang sudah di-cache.

Contoh 1: Pencocokan cache gambar otomatis (disarankan)

Gunakan eci-auto-imc agar ECI memilih cache terbaik yang tersedia secara otomatis. Tambahkan imc-perfect-match: "true" jika semua gambar dalam pod harus ada dalam cache.

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"          # Aktifkan pencocokan cache otomatis
        k8s.aliyun.com/imc-perfect-match: "true"     # Semua gambar harus ada dalam cache
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent                 # Mencegah pengunduhan ulang lapisan gambar yang sudah di-cache
      - name: busybox
        image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
        command: ["sleep"]
        args: ["999999"]
        imagePullPolicy: IfNotPresent                 # Mencegah pengunduhan ulang lapisan gambar yang sudah di-cache

Contoh 2: Mengaitkan ke cache gambar tertentu

Gunakan eci-imc-id untuk menargetkan resource ImageCache tertentu. Cache yang ditentukan harus berada dalam status Ready sebelum Anda menerapkan manifes, jika tidak, pembuatan pod akan gagal.

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****  # ID ImageCache target
    spec:
      containers:
      - name: nginx
        image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
        ports:
        - containerPort: 80
        imagePullPolicy: IfNotPresent                          # Mencegah pengunduhan ulang lapisan gambar yang sudah di-cache

Langkah selanjutnya