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.
PentingEdisi 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.
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_acceleratedmaupun gambar aslinya tidak dapat dihapus saat sedang digunakan.
Masuk ke Konsol Container Registry.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, klik Instances.
Pada halaman Instances, klik instans Edisi Perusahaan yang ingin Anda kelola.
Di panel navigasi kiri halaman manajemen instans Container Registry Edisi Perusahaan, pilih .
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.
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.
PentingMode indeks saja dalam pratinjau publik. Kami sarankan Anda memverifikasi mode ini dalam lingkungan pengujian sebelum menggunakannya dalam lingkungan produksi.
CatatanMode indeks saja hanya dapat digunakan untuk gambar yang dikompresi oleh
tardantgz. Mode ini tidak dapat digunakan untuk gambar yang dikompresi oleh metode kompresi lainnya, sepertizstd.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.(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.
CatatanMasukkan 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.
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
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, pilih .
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.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, pilih .
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: trueke 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
Untuk pool node sisi cloud, lihat Buat dan kelola pool node
Untuk pool node sisi edge, lihat Manajemen pool node edge
Kluster ACK Lingjun
Alibaba Cloud Container Service (ACS)
Instal komponen aliyun-acr-acceleration-suite.
-
Masuk ke Konsol ACK.
-
Pada halaman Clusters, klik nama kluster tempat Anda ingin menginstal komponen aliyun-acr-acceleration-suite dan pilih di panel navigasi kiri.
-
Di bagian Others pada halaman Add-ons, temukan aliyun-acr-acceleration-suite dan klik Install.
-
Dalam pesan Install aliyun-acr-acceleration-suite, klik OK.
-
Di panel navigasi kiri, pilih . Pada halaman DaemonSets, lihat detail instalasi daemon komponen.
-
Di panel navigasi kiri, pilih . Pada halaman Deployments, lihat detail instalasi deployment komponen.
Jika semua pod komponen telah dimulai, instalasi komponen selesai.
-
-
Aktifkan gambar akselerasi
Konfigurasikan kredensial akses untuk repositori tempat gambar akselerasi berada.
PeringatanPastikan 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.
CatatanHanya 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"
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:
CatatanNama label adalah
k8s.aliyun.com/image-accelerate-mode, dan nilai label adalahon-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-demandke 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.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel navigasi kiri, klik Namespaces and Quotas.
Pada halaman Namespace, temukan namespace yang ingin Anda konfigurasi dan klik Edit di kolom Actions.
Di bagian Label kotak dialog Edit Namespace, atur Variable Key menjadi
k8s.aliyun.com/image-accelerate-modedan Variable Value menjadion-demand, lalu klik OK.
Lampirkan label akselerasi gambar di CLI.
kubectl label namespaces <YOUR-NAMESPACE> k8s.aliyun.com/image-accelerate-mode=on-demandJika 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.