全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan pemuatan gambar kontainer sesuai permintaan untuk mempercepat startup kontainer

更新时间:Nov 11, 2025

Gambar kontainer merupakan data terkompresi yang disimpan dalam lapisan. Saat sebuah kontainer dimulai, runtime kontainer biasanya mengunduh dan mendekompresi data gambar tersebut lapis demi lapis. Namun, dalam sebagian besar skenario bisnis, runtime kontainer hanya perlu membaca sebagian data dari gambar kontainer. Mengunduh dan mendekompresi data yang tidak diperlukan menghabiskan sumber daya sistem serta memperpanjang waktu startup kontainer. Alibaba Cloud Container Service for Kubernetes (ACK) mendukung pemuatan gambar kontainer sesuai permintaan berdasarkan teknologi Data Accelerator for Disaggregated Infrastructure (DADI). Fitur ini memungkinkan Anda menghindari pengunduhan gambar secara penuh dan mendekompresi data gambar secara langsung, sehingga secara signifikan mempersingkat waktu startup aplikasi.

Efek akselerasi bergantung pada faktor-faktor seperti ukuran gambar dan kondisi jaringan repositori gambar. Pengujian menunjukkan bahwa untuk gambar NodeBB berukuran 1,34 GB dari Docker Hub, fase pull gambar memerlukan waktu 36 detik dan total waktu startup aplikasi adalah 38 detik. Dengan gambar yang dipercepat, fase pull gambar hanya memerlukan waktu 4 detik dan total waktu startup aplikasi hanya 9 detik.

Penting

Waktu pull gambar yang disediakan dalam topik ini hanya sebagai referensi. Data aktual bergantung pada lingkungan operasi Anda.

Batasan

  • Hanya Kluster ACK yang dikelola yang memenuhi persyaratan berikut yang didukung.

  • Hanya mode lengkap DADI yang didukung. Mode index-only tidak didukung.

Langkah 1: Dapatkan gambar yang dipercepat

Anda dapat mengonversi gambar kontainer yang ada ke format gambar dipercepat DADI menggunakan alat open source atau fitur pemuatan gambar kontainer sesuai permintaan yang disediakan oleh ACR Edisi Perusahaan.

Gunakan alat open source

Anda dapat menggunakan DADI untuk mengonversi gambar kontainer yang ada ke format gambar DADI.

  1. Jalankan perintah berikut untuk menginstal dependensi snapshotter.

    # Unduh paket instalasi untuk arsitektur instans.
    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. Jalankan perintah berikut untuk menginstal dependensi overlaybd.

    # Unduh paket instalasi untuk arsitektur instans.
    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. Jalankan perintah berikut untuk mengonversi gambar.

    Contoh ini menggunakan repositori gambar ACR. Jika Anda menggunakan repositori gambar yang dikelola sendiri, Anda harus mengubah alamat gambar dan kredensial akun dalam perintah.

    /opt/overlaybd/snapshotter/convertor -u user:password -r xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis -i latest -o latest_obd_new

Gunakan ACR Enterprise Edition

ACR Enterprise Edition (Standard atau Premium) memungkinkan Anda mengonfigurasi pemuatan gambar kontainer sesuai permintaan di tingkat repositori. Fitur ini secara otomatis mengonversi gambar asli yang Anda dorong menjadi gambar yang dipercepat. Waktu konversi bervariasi tergantung pada ukuran gambar, dan gambar asli tidak terpengaruh. Untuk informasi selengkapnya dan batasan, lihat Pemuatan gambar kontainer sesuai permintaan.

Catatan

Namespace dan nama repositori gambar yang dipercepat sama dengan gambar aslinya. Tag gambar yang dipercepat adalah tag gambar asli dengan akhiran _accelerated.

  1. Masuk ke Konsol Container Registry. Di bilah menu atas, pilih wilayah.

  2. Di panel navigasi sebelah kiri, klik Instances. Pada halaman Instances, klik nama instance Enterprise Edition yang ingin Anda kelola.

  3. Di panel navigasi sebelah kiri, pilih Repository Management > Image Repository.

  4. Klik name of the repository yang ingin Anda kelola. Pada halaman Details, klik Edit di pojok kiri atas.

  5. Pada kotak dialog Modify Basic Information, aktifkan Image Acceleration, pilih Full Mode, lalu klik OK.

    Catatan

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

Langkah 2: Aktifkan fitur akselerasi gambar kontainer untuk kelompok node

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

Aktifkan untuk kelompok node baru

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

  2. Pada halaman Clusters, temukan kluster yang ingin dikelola 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 selengkapnya, lihat Buat dan kelola kelompok node.

Aktifkan untuk kelompok node yang sudah ada

Saat Anda mengaktifkan atau menonaktifkan Container Image Acceleration, perubahan tersebut hanya berlaku untuk node baru. Untuk menerapkan perubahan ke node yang sudah ada, Anda harus menghapus node dari kelompok node lalu menambahkannya kembali ke kelompok node tersebut. Untuk informasi selengkapnya, lihat Hapus node dan Tambahkan node yang sudah ada.

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

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

  3. Pada halaman Node Pools, temukan kelompok node target dan klik Edit di kolom Actions. Di bagian Advanced Options, pilih Container Registry Acceleration, lalu ikuti petunjuk di layar untuk memperbarui ConfigMap kelompok node.

    Pada halaman Node Pools, jika kolom Status kelompok node menampilkan Updating, berarti kelompok node sedang diperbarui. Jika menampilkan Active, berarti pembaruan telah selesai.

Langkah 3: Gunakan gambar yang dipercepat untuk membuat aplikasi

1. Konfigurasikan kredensial pull gambar kontainer

Instal komponen aliyun-acr-acceleration-suite

  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, klik Add-ons.

  3. Pada halaman Add-ons, temukan komponen aliyun-acr-acceleration-suite di bagian Others dan klik Install.

Konfigurasikan kredensial pull

Catatan

Jika aplikasi Anda tidak perlu menggunakan secret untuk menarik gambar privat, Anda dapat melewati langkah ini dan melanjutkan ke membuat aplikasi yang menggunakan gambar yang dipercepat.

Anda dapat mengonfigurasi kredensial pull gambar dengan salah satu cara berikut.

  • Konfigurasikan plugin bebas kata sandi untuk instance ACR Enterprise Edition

    Instal dan konfigurasikan plugin bebas kata sandi. Setelah berhasil menginstal plugin bebas kata sandi di kluster ACK, sistem secara otomatis menyuntikkan kredensial akses untuk repositori ACR ke beban kerja yang memenuhi syarat. Anda tidak perlu mengelola siklus hidup kredensial akses atau asosiasinya dengan beban kerja secara manual. Untuk informasi selengkapnya, lihat Tarik gambar ACR tanpa secret.

  • Buat Secret secara manual untuk repositori gambar yang dikelola sendiri

    Jalankan perintah berikut untuk membuat Secret bertipe kubernetes.io/dockerconfigjson guna mengonfigurasi kredensial akses untuk repositori gambar kontainer.

    kubectl create secret docker-registry <SecretName> --docker-server=<RegistryVpcDomain> --docker-username=<UserName> --docker-password=<Password>

    Jalankan perintah berikut untuk menambahkan label images.alibabacloud.com/accelerated: true ke Secret tersebut.

    kubectl label secrets <SecretName>  images.alibabacloud.com/accelerated="true"

2. Buat aplikasi yang menggunakan gambar yang dipercepat

Gunakan contoh konten YAML berikut untuk membuat Pod. Pod tersebut kemudian akan dijadwalkan ke node yang telah diaktifkan akselerasi gambarnya.

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" # Tambahkan label node selector di sini.
      containers:
        - name: test
          image: xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis:latest_obd_new # Masukkan alamat gambar yang dipercepat di sini.
          command: ["sleep", "3600"]

Dokumen terkait

Untuk menggunakan snapshot disk data guna mempercepat inisialisasi beban kerja dan node, lihat Gunakan snapshot disk data untuk mempercepat startup aplikasi model besar.