全部产品
Search
文档中心

Container Registry:Memuat sumber daya gambar kontainer atas permintaan

更新时间:Aug 12, 2025

Saat membuat kontainer menggunakan gambar, sistem biasanya mengunduh dan mengekstrak seluruh paket gambar meskipun hanya sebagian sumber daya yang diperlukan untuk memulai kontainer. Proses ini sering memakan waktu lama. Anda dapat menggunakan Container Registry Enterprise Edition untuk menerapkan versi akselerasi dari gambar kontainer. Gambar yang dipercepat memungkinkan sistem mengunduh dan mengekstrak hanya sumber daya yang diperlukan, bukan seluruh paket gambar. Hal ini mempercepat distribusi aplikasi dan memberikan elastisitas tinggi.

Prasyarat

  • Kluster Anda harus salah satu dari jenis kluster berikut:

    • Edisi Managed dan Dedicated: v1.16.9 atau lebih baru

    • Kluster ACK Edge: v1.26.3 atau lebih baru

    • Kluster ACK Serverless: v1.26.3 atau lebih baru

    • Kluster ACK Lingjun: v1.26.3 atau lebih baru

    • Alibaba Cloud Container Compute Service (ACS): v1.26.3 atau lebih baru

    Sistem operasi yang didukung saat membuat kluster:

    • Alibaba Cloud Linux 2.1903

    • Alibaba Cloud Linux 3.2104

    • Alibaba Cloud Linux 3.2104 LTS 64-bit ARM edition

    • Alibaba Cloud Linux UEFI 2.1903

    • CentOS 7.9

  • Instans Container Registry Enterprise Edition telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instans Container Registry Enterprise Edition.

    Penting

    Edisi instans Container Registry Enterprise Edition yang mendukung gambar akselerasi bervariasi berdasarkan mode akselerasi gambar.

    • Mode penuh: Edisi Standar dan Edisi Lanjutan

    • Mode indeks saja: Edisi Dasar, Edisi Standar, dan Edisi Lanjutan

  • VPC dari kluster ACK atau Kluster ACK Serverless ditambahkan ke daftar kontrol akses (ACL) dari instans Container Registry Enterprise Edition. Gambar akselerasi hanya dapat berjalan di VPC. Untuk informasi lebih lanjut, lihat Konfigurasikan Kontrol Akses Jaringan untuk VPC.

Informasi latar belakang

Anda dapat menggunakan Container Registry Enterprise Edition untuk menerapkan versi yang dipercepat dari sebuah image kontainer. Image yang dipercepat memungkinkan sistem hanya mengunduh sumber daya yang diperlukan dan mendekompresi paket image secara online. Hal ini mempercepat distribusi artefak aplikasi dan menyediakan elastisitas tinggi. Efek percepatan bervariasi berdasarkan ukuran image dan kondisi jaringan repositori image. Pengujian menunjukkan bahwa menarik image NodeBB berukuran 1,34 GB dari Docker Hub membutuhkan waktu 36 detik. Memulai aplikasi pada image tersebut membutuhkan waktu 38 detik. Menarik image NodeBB yang dipercepat hanya membutuhkan waktu 4 detik, dan memulai aplikasi pada image tersebut hanya membutuhkan waktu 9 detik.

Batasan penggunaan

  • Jika runtime kontainer Anda adalah Containerd, Anda dapat mengatur nama domain kustom untuk repositori gambar yang dipercepat. Jika runtime kontainer Anda adalah Docker, Anda tidak dapat mengatur nama domain kustom untuk repositori gambar yang dipercepat karena batasan Docker. Untuk informasi lebih lanjut, lihat Gunakan Nama Domain Kustom untuk Mengakses Instans Container Registry Enterprise Edition.

  • Mode indeks saja tidak dapat digunakan dalam skenario Function Compute atau Serverless App Engine (SAE).

  • Gambar yang ada memerlukan pemicu manual untuk dikonversi menjadi gambar akselerasi.

Batasan wilayah

Fitur pemuatan gambar atas permintaan tidak didukung di wilayah Alibaba Finance Cloud dan Alibaba Gov Cloud.

Konversi gambar dasar menjadi gambar akselerasi

Anda dapat mengaktifkan akselerasi gambar untuk repositori. Dengan cara ini, setiap gambar yang di-push ke repositori secara otomatis dikonversi menjadi gambar akselerasi. Waktu yang diperlukan untuk mengonversi gambar menjadi gambar akselerasi tergantung pada ukuran gambar. Konversi ini tidak memengaruhi gambar dasar.

Catatan

Nama namespace dan nama repositori gambar akselerasi sama dengan nama namespace dan nama repositori gambar dasar. Format tag gambar akselerasi bervariasi berdasarkan mode akselerasi gambar.

  • Untuk mode indeks saja, format tag gambar akselerasi adalah tag gambar dasar ditambah akhiran _accelerated. Gambar akselerasi dalam format ini hanya mendukung runtime containerd, dan tag gambar dasar tidak dapat dihapus saat gambar akselerasi digunakan.

  • Untuk mode penuh, tag gambar akselerasi berada dalam salah satu format berikut:

    • Tag gambar dasar ditambah akhiran _accelerated. Gambar akselerasi dengan tag dalam format ini mendukung runtime Docker dan Containerd.

    • Tag gambar dasar ditambah akhiran _containerd_accelerated. Gambar akselerasi dengan tag dalam format ini hanya mendukung runtime containerd.

      Catatan: Baik gambar dengan akhiran _containerd_accelerated maupun gambar aslinya tidak dapat dihapus saat sedang digunakan.

  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 Edisi Perusahaan yang ingin Anda kelola.

  5. Di panel navigasi kiri halaman manajemen instans Container Registry Edisi Perusahaan, pilih Repository > Repositories.

  6. Pada halaman Repositori, temukan repositori yang ingin Anda aktifkan akselerasi gambarnya. Klik nama repositori atau klik Manage di kolom Actions. Pada halaman yang muncul, klik Edit di pojok kiri atas.

  7. Dalam kotak dialog Modify Settings, pilih Enabled di bagian Gambar Akselerasi, pilih mode akselerasi, lalu klik Confirm.

    • Full Mode: Mode ini secara signifikan mempercepat startup kontainer. Ukuran gambar akselerasi sekitar 130% dari ukuran gambar dasar. Sistem membutuhkan sekitar 25 detik untuk menghasilkan gambar akselerasi untuk gambar berukuran 1 GB. Jika lapisan gambar akselerasi telah dihasilkan untuk lapisan gambar, sistem tidak akan menghasilkan ulang lapisan gambar akselerasi untuk lapisan gambar tersebut.

    • Index-only Mode: Mode ini memberikan efek akselerasi sekitar 70% dari efek mode penuh pada startup kontainer. Ukuran gambar akselerasi sekitar 3% dari ukuran gambar dasar. Sistem membutuhkan sekitar 3 detik untuk menghasilkan gambar akselerasi untuk gambar berukuran 1 GB. Sistem tidak menghasilkan ulang indeks untuk lapisan gambar yang sudah memiliki indeks.

      Penting

      Mode indeks saja dalam pratinjau publik. Kami sarankan Anda memverifikasi mode ini dalam lingkungan pengujian sebelum menggunakannya dalam lingkungan produksi.

      Catatan
      • Mode indeks saja hanya dapat digunakan untuk gambar yang dikompresi oleh tar dan tgz. Mode ini tidak dapat digunakan untuk gambar yang dikompresi oleh metode kompresi lainnya, seperti zstd.

      • Saat Anda menggunakan mode indeks saja untuk mempercepat gambar, Anda harus menggunakan gambar akselerasi bersama dengan gambar dasar. Anda tidak dapat menghapus gambar dasar. Jika Anda menggunakan mode penuh, Anda dapat menggunakan gambar akselerasi secara terpisah.

      • Mode indeks saja tidak mendukung runtime Docker.

    Setelah Anda mengaktifkan akselerasi gambar untuk repositori, setiap gambar yang sistem push ke repositori secara otomatis dikonversi menjadi gambar akselerasi. Jika Anda ingin diberitahu setiap kali gambar dikonversi menjadi gambar akselerasi, Anda dapat mengonfigurasi notifikasi acara. Misalnya, tentukan pemicu berbasis ekspresi dan atur ekspresi menjadi _accelerated$. Untuk informasi lebih lanjut, lihat Notifikasi Acara.

  8. (Opsional) Tentukan Prefetch File List. File dalam daftar ini diprioritaskan untuk pra-ambil saat gambar akselerasi dimulai. Kami sarankan Anda menggunakan fitur pra-ambil file saat file besar harus dibaca untuk startup kontainer.

    Catatan

    Masukkan jalur mutlak file dalam satu baris. Jika jalur mutlak adalah direktori, tambahkan garis miring maju (/) di akhir baris.

Instal komponen akselerasi gambar aliyun-acr-acceleration-suite

Untuk memulai kontainer menggunakan gambar akselerasi, Anda harus menginstal komponen aliyun-acr-acceleration-suite pada node pekerja di kluster ACK.

  1. Untuk mendukung gambar akselerasi DADI, Anda dapat mengaktifkan Container Image Acceleration di konsol ACK untuk mengaktifkan akselerasi gambar untuk pool node baru atau yang sudah ada.

    Kluster ACK managed dan dedicated

    Aktifkan akselerasi gambar saat Anda membuat pool node

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

    2. Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, pilih Nodes > Node Pools.

    3. Pada halaman Node Pools, aktifkan Container Registry Acceleration di bagian Advanced Options. Untuk informasi lebih lanjut, lihat Buat dan Kelola Pool Node.

    Aktifkan akselerasi gambar untuk pool node yang sudah ada

    Jika Anda menghidupkan atau mematikan Container Image Acceleration, operasi ini hanya berlaku untuk node baru. Jika Anda ingin operasi ini berlaku pada node yang sudah ada, Anda harus menghapus node dari pool node dan menambahkan ulang node ke pool node. Untuk informasi lebih lanjut, lihat Hapus Node dan Tambahkan Instans ECS yang Sudah Ada ke Kluster ACK.

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

    2. Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, pilih Nodes > Node Pools.

    3. Pada halaman Node Pools, temukan pool node yang ingin Anda ubah dan klik Edit di kolom Actions. Di bagian Opsi Lanjutan, aktifkan Container Registry Acceleration dan ikuti petunjuk untuk memperbarui ConfigMap dari pool node.

      Pada halaman Pool Node, jika kolom Status dari pool node menampilkan Updating, pool node sedang dimodifikasi. Jika status pool node berubah menjadi Active, modifikasi selesai.

    Kluster lainnya

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

    Pengaturan label untuk berbagai jenis kluster adalah sebagai berikut:

    Tipe Kluster

    Referensi

    Kluster ACK Serverless

    Kluster ACK Edge

    Kluster ACK Lingjun

    Ikhtisar pool node Lingjun

    Alibaba Cloud Container Service (ACS)

    Manajemen label dan taint node

  2. Instal komponen aliyun-acr-acceleration-suite.

    1. Masuk ke Konsol ACK.

    2. Pada halaman Clusters, klik nama kluster tempat Anda ingin menginstal komponen aliyun-acr-acceleration-suite dan pilih Operations > Add-ons di panel navigasi kiri.

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

    4. Dalam pesan Install aliyun-acr-acceleration-suite, klik OK.

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

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

      Jika semua pod komponen telah dimulai, instalasi komponen selesai.

Aktifkan gambar akselerasi

  1. Konfigurasikan kredensial akses untuk repositori tempat gambar akselerasi berada.

    Peringatan

    Pastikan prinsip hak istimewa minimal diikuti saat Anda mengonfigurasi rahasia yang digunakan untuk menarik gambar dan hanya izin yang diperlukan yang diberikan. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.

    • Gunakan komponen aliyun-acr-credential-helper yang memungkinkan Anda menarik gambar dari repositori gambar tanpa menggunakan rahasia.

      • Jika komponen aliyun-acr-credential-helper telah dikonfigurasi untuk kluster dan informasi yang ditentukan tentang instans Container Registry Enterprise Edition benar, Anda dapat melewati langkah ini.

      • Jika komponen aliyun-acr-credential-helper belum dikonfigurasi untuk kluster, Anda dapat mengonfigurasi komponen tersebut untuk kluster. Untuk informasi lebih lanjut, lihat Gunakan Komponen aliyun-acr-credential-helper untuk Menarik Gambar Tanpa Menggunakan Rahasia.

    • Tentukan label untuk rahasia yang digunakan untuk menarik gambar.

      Catatan

      Hanya komponen aliyun-acr-acceleration-suite versi V0.2.6 atau lebih baru yang mendukung metode ini.

      Jalankan perintah berikut untuk membuat rahasia dengan tipe kubernetes.io/dockerconfigjson dan label images.alibabacloud.com/accelerated: true:

      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. Lampirkan label akselerasi gambar.

    Anda dapat melampirkan label akselerasi gambar ke workload seperti pod dan Deployment. Anda juga dapat melampirkan label akselerasi gambar ke namespace kluster ACK atau Kluster ACK Serverless. Fitur pemuatan gambar atas permintaan diterapkan ke semua workload dalam namespace yang memenuhi kondisi akselerasi. Dengan cara ini, Anda tidak perlu mengedit file YAML untuk setiap workload. Anda dapat menggunakan salah satu metode berikut untuk melampirkan label akselerasi gambar ke workload tertentu atau semua workload dalam namespace:

    Catatan

    Nama label adalah k8s.aliyun.com/image-accelerate-mode, dan nilai label adalah on-demand.

    • Lampirkan label akselerasi gambar ke workload.

      Contoh berikut menunjukkan cara melampirkan label akselerasi gambar ke pod. Jalankan perintah berikut untuk melampirkan label akselerasi gambar ke pod yang dikelola oleh Deployment:

      kubectl edit deployment <Nama Deployment> -n <Namespace tempat Deployment berada>

      Tambahkan label k8s.aliyun.com/image-accelerate-mode: on-demand ke file YAML Deployment.

      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 atas permintaan
              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"]
    • Lampirkan label akselerasi gambar ke namespace.

      • Lampirkan label akselerasi gambar di konsol ACK.

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

        2. Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel navigasi kiri, klik Namespaces and Quotas.

        3. Pada halaman Namespace, temukan namespace yang ingin Anda konfigurasi dan klik Edit di kolom Actions.

        4. Di bagian Label kotak dialog Edit Namespace, atur Variable Key menjadi k8s.aliyun.com/image-accelerate-mode dan Variable Value menjadi on-demand, lalu klik OK.

      • Lampirkan label akselerasi gambar di CLI.

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

    Jika Anda telah melampirkan label akselerasi gambar ke namespace dan mengonversi gambar dasar menjadi gambar akselerasi, saat Anda membuat atau memperbarui pod di namespace tersebut, komponen aliyun-acr-acceleration-suite secara otomatis menggunakan URL gambar akselerasi pod untuk menggantikan URL gambar dasar pod, menambahkan nodeSelector, lalu menjadwalkan pod ke node akselerasi.