All Products
Search
Document Center

Container Registry:Muat gambar kontainer sesuai permintaan

Last Updated:Apr 25, 2026

Secara tradisional, menjalankan kontainer memerlukan pengunduhan dan dekompresi seluruh gambar sebelum startup. Namun, kontainer sering kali hanya membutuhkan sebagian kecil data gambar untuk memulai, sehingga menyebabkan waktu startup yang lama. Fitur pemuatan sesuai permintaan (on-demand loading) dari Container Registry Enterprise Edition mengatasi hal ini dengan hanya mengunduh dan mendekompresi data gambar yang esensial untuk startup, bukan seluruh gambarnya. Metode ini secara signifikan mempercepat penerapan aplikasi dan meningkatkan elastisitas penskalaan.

Prasyarat

  • Tersedia kluster ACK yang didukung.

    Catatan

    Anda dapat menggunakan gambar terakselerasi di kluster managed/dedicated ACK versi 1.16.9 atau lebih baru, serta di kluster ACK Edge, kluster ACK Serverless, kluster ACK Lingjun, dan kluster Alibaba Cloud Container Compute Service (ACS) versi 1.26.3 atau lebih baru. Saat membuat kluster, sistem operasi harus berupa Alibaba Cloud Linux 2.1903, Alibaba Cloud Linux 3.2104, edisi ARM 64 bit Alibaba Cloud Linux 3.2104 LTS, Alibaba Cloud Linux UEFI 2.1903, atau CentOS 7.9.

  • Anda telah membuat instans Container Registry Enterprise Edition. Untuk informasi selengkapnya, lihat Buat instans Container Registry Enterprise Edition.

    Penting

    Edisi instans Container Registry Enterprise Edition yang didukung bervariasi berdasarkan mode akselerasi gambar:

    • mode lengkap (full mode): Edisi Standard atau Advanced didukung.

    • mode index-only: Edisi Basic, Standard, atau Advanced didukung.

  • VPC dari kluster ACK atau kluster ACK Serverless Anda telah dikonfigurasi untuk instans Container Registry Enterprise Edition Anda. Gambar terakselerasi harus digunakan dalam VPC. Untuk informasi selengkapnya, lihat Konfigurasikan kontrol akses untuk VPC.

Informasi latar belakang

Fitur pemuatan sesuai permintaan dari Container Registry Enterprise Edition memungkinkan Anda menggunakan gambar terakselerasi dalam penerapan Anda. Hal ini menghilangkan kebutuhan untuk mengunduh seluruh gambar dan memungkinkan dekompresi secara langsung (on-the-fly), yang secara signifikan meningkatkan efisiensi distribusi aplikasi dan elastisitas penskalaan. Efek akselerasi bergantung pada faktor-faktor seperti ukuran gambar dan kondisi jaringan repositori. Dalam pengujian, aplikasi yang menggunakan gambar NodeBB berukuran 1,34 GB dari Docker Hub memerlukan waktu 36 detik untuk menarik (pull) gambarnya, dengan total waktu startup 38 detik. Dengan menggunakan gambar terakselerasi, waktu pull berkurang menjadi 4 detik, dan total waktu startup hanya 9 detik.

Batasan

  • Jika runtime kontainer Anda adalah containerd, repositori gambar terakselerasi dapat menggunakan nama domain kustom. Karena keterbatasan Docker, fitur ini tidak didukung jika Anda menggunakan runtime Docker. Untuk informasi selengkapnya, lihat Gunakan nama domain kustom untuk mengakses instans Container Registry Enterprise Edition.

  • Mode index-only tidak dapat digunakan dalam skenario Function Compute (FC) atau Serverless App Engine (SAE).

  • Anda harus mengonversi gambar yang sudah ada menjadi gambar terakselerasi secara manual.

Ketersediaan wilayah

Fitur pemuatan sesuai permintaan tidak tersedia di wilayah Alibaba Finance Cloud dan Alibaba Gov Cloud.

Konversi ke gambar terakselerasi

Anda dapat mengonfigurasi repositori agar secara otomatis mengonversi gambar asli yang didorong (pushed) menjadi gambar terakselerasi. Waktu konversi bervariasi tergantung ukuran gambar. Gambar asli tidak terpengaruh.

Catatan

Gambar terakselerasi menggunakan namespace dan nama repositori yang sama dengan gambar aslinya. Format tag-nya sebagai berikut:

  • mode index-only: Tag gambar terakselerasi adalah tag gambar asli dengan akhiran _accelerated. Mode ini hanya didukung oleh runtime containerd. Anda tidak dapat menghapus tag gambar asli selama gambar terakselerasi sedang digunakan.

  • mode lengkap (full mode):

    • Gambar terakselerasi dengan akhiran _accelerated mendukung runtime Docker dan containerd.

    • Gambar terakselerasi dengan akhiran _containerd_accelerated hanya untuk runtime containerd.

      Saat gambar dengan akhiran _containerd_accelerated sedang digunakan, Anda tidak dapat menghapus gambar terakselerasi tersebut maupun gambar aslinya.

  1. Masuk ke Konsol Container Registry.

  2. Di bilah navigasi atas, pilih wilayah.

  3. Di panel navigasi kiri, klik Instances.

  4. Pada halaman Instances, klik instans Enterprise Edition yang ingin Anda kelola.

  5. Di halaman detail instans, di panel navigasi kiri, pilih Repository > Repositories.

  6. Di halaman Repositories, klik nama repositori target atau klik Manage di kolom Actions. Di pojok kiri atas halaman Informasi Dasar, klik Edit.

  7. Di kotak dialog Modify Settings, aktifkan Accelerated Image, pilih mode, lalu klik Confirm.

    • Full Mode: Memberikan akselerasi signifikan untuk startup kontainer. Ukuran gambar terakselerasi yang dihasilkan sekitar 130% dari ukuran gambar aslinya. Diperlukan waktu sekitar 25 detik untuk menghasilkan gambar terakselerasi dari gambar asli berukuran 1 GB. Layer gambar yang sudah ada tidak dibuat ulang.

    • index-only mode: Memberikan sekitar 70% efek akselerasi dari full mode. Ukuran gambar terakselerasi sekitar 3% dari ukuran gambar aslinya. Diperlukan waktu sekitar 3 detik untuk menghasilkan gambar terakselerasi dari gambar asli berukuran 1 GB. Layer gambar yang sudah memiliki indeks tidak diindeks ulang.

      Penting

      Mode index-only sedang dalam pratinjau publik. Kami menyarankan Anda mengujinya di lingkungan non-produksi sebelum menggunakannya di lingkungan produksi.

      Catatan
      • Mode index-only hanya berlaku untuk gambar yang dikompresi dengan tar atau tgz. Mode ini tidak berlaku untuk gambar yang dikompresi dengan metode lain, seperti zstd.

      • Mode index-only harus digunakan bersama gambar aslinya, dan gambar asli tidak dapat dihapus. Di mode lengkap, gambar terakselerasi dapat digunakan secara mandiri.

      • Mode index-only tidak didukung oleh runtime Docker.

    Setelah Anda mengonfigurasi akselerasi gambar, gambar yang didorong secara otomatis memicu tugas konversi. Jika Anda ingin menerima notifikasi saat konversi gambar selesai, Anda dapat mengonfigurasi notifikasi event. Misalnya, atur ekspresi menjadi _accelerated$. Untuk informasi selengkapnya, lihat Konfigurasikan notifikasi event.

  8. (Opsional) Tentukan Prefetch File List. File dalam daftar ini akan dipra-ambil (prefetched) saat gambar terakselerasi dimulai. Kami menyarankan Anda menggunakan fitur ini ketika file besar perlu dibaca saat startup kontainer.

    Catatan

    Setiap baris harus berisi jalur mutlak ke file. Untuk direktori, jalur harus diakhiri dengan garis miring maju (/).

Instal komponen akselerasi gambar

Untuk menjalankan kontainer terakselerasi, Anda harus menginstal plugin penyimpanan untuk pemuatan sesuai permintaan pada node pekerja Anda.

  1. Kluster managed dan dedicated ACK

    Aktifkan untuk kelompok node baru

    1. Masuk ke Konsol ACK dan klik Clusters di panel navigasi kiri.

    2. Klik nama kluster. Di panel navigasi kiri, pilih Nodes > Node Pools.

    3. Saat membuat kelompok node, perluas Advanced Options dan aktifkan Container Image Acceleration.

    Aktifkan untuk kelompok node yang sudah ada

    Penting

    Perubahan pada Container Image Acceleration hanya berlaku untuk node yang ditambahkan ke kelompok setelah perubahan dilakukan. Node yang sudah ada tidak terpengaruh — untuk menerapkan fitur ini ke node yang sudah ada, hapus dan tambahkan kembali node tersebut. Lihat Hapus node dan Tambahkan node yang sudah ada.

    1. Masuk ke Konsol ACK dan klik Clusters di panel navigasi kiri.

    2. Klik nama kluster. Di panel navigasi kiri, pilih Nodes > Node Pools.

    3. Temukan kelompok node dan klik Edit di kolom Actions. Di bagian Advanced Options, aktifkan Container Image Acceleration dan ikuti instruksi di layar untuk memperbarui ConfigMap kelompok node. Kolom Status menampilkan Updating selama pembaruan berlangsung, dan Active saat selesai.

    Jenis kluster lainnya

    Anda perlu menambahkan label akselerasi gambar alibabacloud.com/image-accelerate-enabled: true ke node. Tindakan ini secara otomatis mengaktifkan fitur akselerasi gambar dan menginstal plugin penyimpanan gambar selama inisialisasi node.

    Metode penambahan label bervariasi tergantung jenis kluster:

    Jenis kluster

    Panduan konfigurasi

    ACK Serverless cluster

    ACK Edge cluster

    ACK Lingjun cluster

    Kelompok node Lingjun

    Alibaba Cloud Container Compute Service (ACS)

    Kelola label dan taint node

  2. Instal komponen akselerasi gambar.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

    3. Di halaman Add-ons, temukan aliyun-acr-acceleration-suite di bagian More dan klik Install.

    4. Di kotak dialog Tips, klik OK.

      • Di panel navigasi kiri, pilih Workloads > DaemonSets. Di halaman DaemonSets, lihat detail instalasi DaemonSet komponen.

      • Di panel navigasi kiri, pilih Workloads > Deployments. Di halaman Deployments, lihat detail instalasi Deployment komponen.

      Instalasi komponen selesai ketika semua pod-nya berstatus Berjalan.

Aktifkan gambar terakselerasi

  1. Konfigurasikan kredensial akses repositori.

    Peringatan

    Konfigurasikan secret pull gambar Anda sesuai prinsip hak istimewa minimal. Berikan hanya izin yang diperlukan untuk menarik gambar layanan yang digunakan oleh kluster. Untuk informasi selengkapnya, lihat Berikan kebijakan kustom kepada Pengguna RAM.

    • Opsi 1: Gunakan komponen aliyun-acr-credential-helper.

    • Opsi 2: Tambahkan label ke secret pull gambar.

      Catatan

      Metode ini hanya didukung oleh komponen aliyun-acr-acceleration-suite versi 0.2.6 atau lebih baru.

      Buat Secret bertipe kubernetes.io/dockerconfigjson dan tambahkan label images.alibabacloud.com/accelerated: true ke Secret tersebut.

      kubectl create secret docker-registry <SecretName> --docker-server=<RegistryVpcDomain> --docker-username=<UserName> --docker-password=<Password>
      kubectl label secrets <SecretName>  images.alibabacloud.com/accelerated="true"
  2. Tambahkan label akselerasi gambar.

    Anda dapat menambahkan label akselerasi gambar ke beban kerja (workload), seperti Pod atau Deployment, atau ke seluruh namespace di kluster ACK atau kluster ACK Serverless Anda. Saat Anda memberi label pada namespace, pemuatan sesuai permintaan diaktifkan untuk semua beban kerja yang memenuhi syarat dalam namespace tersebut, sehingga Anda tidak perlu mengubah file YAML untuk setiap beban kerja. Pilih metode yang paling sesuai dengan kebutuhan Anda.

    Catatan

    Kunci label adalah k8s.aliyun.com/image-accelerate-mode dan nilainya adalah on-demand.

    • Tambahkan label akselerasi gambar ke beban kerja.

      Contoh berikut menunjukkan cara menambahkan label ke Pod yang dikelola oleh Deployment. Jalankan perintah berikut untuk mengedit Deployment:

      kubectl edit deployment <DeploymentName> -n <DeploymentNamespace>

      Di file YAML Deployment, tambahkan label k8s.aliyun.com/image-accelerate-mode: on-demand.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-deployment
        labels:
          app: nginx
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
              # aktifkan mode on-demand
              k8s.aliyun.com/image-accelerate-mode: on-demand
          spec:
            containers:
             # gambar instans ACR Anda
             - image: test-registry-vpc.cn-hangzhou.cr.aliyuncs.com/test/nginx:latest
               name: test
               command: ["sleep", "3600"]
    • Tambahkan label akselerasi gambar ke namespace.

      • Tambahkan label akselerasi gambar di konsol.

        1. Masuk ke Konsol ACK, dan di bilah navigasi kiri, pilih Clusters.

        2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Namespaces and Quotas.

        3. Di halaman Namespace, temukan namespace target dan klik Edit di kolom Actions.

        4. Di kotak dialog Edit the namespace, atur Variable Key dari Tag menjadi k8s.aliyun.com/image-accelerate-mode dan Variable Value dari Tag menjadi on-demand, lalu klik Confirm.

      • Tambahkan label akselerasi gambar menggunakan command line.

    kubectl label namespaces <YOUR-NAMESPACE> k8s.aliyun.com/image-accelerate-mode=on-demand

    Setelah Anda menambahkan label akselerasi dan mengonversi gambar asli menjadi gambar terakselerasi, komponen akselerasi secara otomatis mengganti alamat gambar asli dengan alamat gambar terakselerasi dan menambahkan nodeSelector untuk menjadwalkan Pod ke node terakselerasi selama pembuatan atau pembaruan Pod dalam namespace tersebut.