All Products
Search
Document Center

Container Service for Kubernetes:Percepat startup kontainer dengan pemuatan gambar on-demand

Last Updated:Mar 27, 2026

Gambar kontainer disimpan sebagai lapisan terkompresi. Saat sebuah kontainer dimulai, runtime mengunduh dan mendekompresi setiap lapisan sebelum kontainer dapat berjalan — meskipun dalam sebagian besar skenario bisnis, runtime kontainer hanya perlu membaca sebagian kecil data dari gambar tersebut. Untuk gambar berukuran besar, pengunduhan yang tidak perlu ini mendominasi waktu startup.

ACK mendukung pemuatan gambar kontainer secara on-demand menggunakan Data Accelerator for Disaggregated Infrastructure (DADI). Alih-alih menarik seluruh gambar di awal, DADI hanya memuat data yang benar-benar dibutuhkan oleh kontainer dan mendekompresinya secara langsung (on the fly).

Untuk gambar NodeBB berukuran 1,34 GB dari Docker Hub, pemuatan on-demand mengurangi fase penarikan gambar dari 36 detik menjadi 4 detik serta waktu startup aplikasi total dari 38 detik menjadi 9 detik.

Penting

Waktu penarikan gambar di atas hanya untuk referensi. Performa aktual bergantung pada ukuran gambar dan kondisi jaringan.

Batasan

Constraint Requirement
Jenis kluster Hanya kluster ACK yang dikelola.
Versi kluster 1.26 atau lebih baru. Lihat Tingkatkan kluster secara manual.
waktu proses Node containerd 1.6.34 atau lebih baru. Lihat Perbarui kelompok node.
Mode DADI Hanya mode Full. Mode Index-only tidak didukung.

Perilaku penting — mengaktifkan atau menonaktifkan Container Image Acceleration pada kelompok node hanya memengaruhi node yang ditambahkan setelahnya. Untuk menerapkan perubahan pada node yang sudah ada, hapus node tersebut dari kelompok node lalu tambahkan kembali. Lihat Hapus node dan Tambahkan node yang sudah ada.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster ACK yang dikelola yang menjalankan Kubernetes 1.26 atau lebih baru dengan containerd 1.6.34 atau lebih baru sebagai runtime node

  • Akses ke repositori gambar — baik ACR Edisi Perusahaan (Standard atau Premium) maupun registri yang dikelola sendiri

  • Akses kubectl ke kluster

Langkah 1: Dapatkan gambar terakselerasi

Gambar terakselerasi menggunakan format DADI. Konversi gambar yang sudah ada menggunakan fitur konversi bawaan ACR Edisi Perusahaan (disarankan) atau alat open source DADI.

Opsi 1: Gunakan ACR Edisi Perusahaan (disarankan)

ACR Edisi Perusahaan (Standard atau Premium) mengonversi gambar secara otomatis di tingkat repositori. Saat Anda mendorong (push) gambar, ACR membuat salinan terakselerasi tanpa mengubah gambar aslinya. Gambar terakselerasi menggunakan namespace dan nama repositori yang sama, dengan akhiran _accelerated pada tag-nya (misalnya, latest menjadi latest_accelerated).

Untuk informasi lebih lanjut dan batasan, lihat Pemuatan gambar kontainer on-demand.

  1. Masuk ke Konsol Container Registry dan pilih wilayah.

  2. Di panel navigasi kiri, klik Instances. Di halaman Instances, klik nama instans Edisi Perusahaan.

  3. Di panel navigasi kiri, pilih Repository > Repositories.

  4. Klik nama repositori. Di halaman Details, klik Edit di pojok kiri atas.

  5. Di kotak dialog Modify Settings, aktifkan Accelerated Image, pilih Full Mode, lalu klik Confirm. Gambar yang didorong setelah perubahan ini secara otomatis memicu tugas konversi. Untuk menerima notifikasi saat konversi selesai, konfigurasikan notifikasi event dengan ekspresi _accelerated$. Lihat Event Notifications.

Opsi 2: Gunakan tool DADI open source

Gunakan konverter gambar DADI untuk mengonversi gambar secara manual.

  1. Instal overlaybd snapshotter.

    # Unduh paket sesuai arsitektur instans Anda.
    wget https://github.com/containerd/accelerated-container-image/releases/download/v1.2.3/overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
    rpm -ivh overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
  2. Instal lapisan perangkat blok overlaybd.

    # Unduh paket sesuai arsitektur instans Anda.
    wget https://github.com/containerd/overlaybd/releases/download/v1.0.13/overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
    rpm -ivh overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
  3. Konversi gambar tersebut. Contoh berikut mengonversi gambar di repositori ACR. Untuk registri yang dikelola sendiri, sesuaikan alamat gambar dan kredensialnya.

    Placeholder Description
    user:password Kredensial registri
    xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis Alamat repository gambar sumber
    latest Tag gambar sumber (-i)
    latest_obd_new Tag gambar output (-o)
    /opt/overlaybd/snapshotter/convertor \
      -u user:password \
      -r xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis \
      -i latest \
      -o latest_obd_new

    Ganti placeholder berikut:

Langkah 2: Aktifkan Container Image Acceleration pada kelompok node

Baik kelompok node baru maupun yang sudah ada mendukung Container Image Acceleration. Langkah-langkahnya sedikit berbeda.

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, buka 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 pada node yang sudah ada, hapus lalu tambahkan kembali node tersebut. Lihat Hapus node dan Tambahkan node yang sudah ada.

  1. Masuk ke konsol ACK, lalu 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 petunjuk di layar untuk memperbarui ConfigMap kelompok node. Kolom Status akan menampilkan Updating selama pembaruan berlangsung, dan Active saat selesai.

Langkah 3: Sebarkan aplikasi dengan gambar terakselerasi

Konfigurasikan kredensial penarikan gambar

Instal komponen aliyun-acr-acceleration-suite agar DADI dapat melakukan autentikasi dengan registri gambar saat memuat data gambar secara on-demand.

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

  2. Klik nama kluster. Di panel navigasi kiri, klik Add-ons.

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

Setelah instalasi, konfigurasikan kredensial penarikan berdasarkan jenis registri Anda:

ACR Edisi Perusahaan: Instal plugin bebas password untuk secara otomatis menyuntikkan kredensial akses ke workload yang memenuhi syarat. Hal ini menghilangkan kebutuhan manajemen Secret secara manual. Lihat Tarik gambar ACR tanpa secret.

Registri yang dikelola sendiri: Buat Secret bertipe kubernetes.io/dockerconfigjson, lalu beri label agar suite akselerasi dapat menggunakannya.

# Buat Secret.
kubectl create secret docker-registry <SecretName> \
  --docker-server=<RegistryVpcDomain> \
  --docker-username=<UserName> \
  --docker-password=<Password>

# Beri label Secret untuk DADI.
kubectl label secrets <SecretName> images.alibabacloud.com/accelerated="true"
Catatan

Jika aplikasi Anda tidak perlu menggunakan secret untuk menarik gambar privat, Anda dapat melewati langkah ini.

Buat aplikasi

Gunakan node selector untuk menjadwalkan Pod ke node yang telah diaktifkan akselerasi gambarnya. Label alibabacloud.com/image-accelerate-enabled: "true" secara otomatis diterapkan pada node yang diaktifkan akselerasi.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        alibabacloud.com/image-accelerate-enabled: "true" # Jadwalkan hanya ke node yang diaktifkan akselerasi.
      containers:
        - name: test
          image: xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis:latest_obd_new # Ganti dengan alamat gambar terakselerasi Anda.
          command: ["sleep", "3600"]

Terapkan manifes:

kubectl apply -f deployment.yaml

Langkah selanjutnya

Referensi