Paket penyebaran gambar kontainer memungkinkan Anda mendistribusikan gambar kontainer Docker privat kepada konsumen layanan melalui Compute Nest tanpa membuat gambar tersebut tersedia secara publik. Compute Nest mengelola repositori Container Registry (ACR) publik tempat gambar dari setiap penyedia layanan disimpan dalam namespace terisolasi. Selama penerapan, Compute Nest mengganti pengenal templat dengan URL gambar aktual dan kunci pull berdurasi pendek, sehingga kluster ACK dapat menarik gambar Anda tanpa mengekspos kredensial secara permanen.
Penggunaan repositori Container Registry publik Compute Nest menghilangkan beban menjalankan instans Container Registry sendiri—tanpa biaya instans, kebijakan kontrol akses manual, maupun risiko penghapusan gambar secara tidak sengaja. Compute Nest mengelola penyimpanan, pemindaian keamanan, dan akses secara terpusat.
Batasan
Paket penyebaran gambar kontainer tidak cocok untuk semua skenario. Hindari pendekatan ini jika:
Layanan Anda memerlukan auto scaling.
Workload Anda pulls images frequently.
Jika salah satu batasan tersebut berlaku, lihat Alternatif di bawah.
Alternatif
| Skenario | Alternatif |
|---|---|
| Layanan tidak dapat mengakses Internet | Buat repositori Container Registry yang dikelola sendiri dan tarik gambar melalui jaringan internal menggunakan URL internal. Lihat Configure a VPC ACL. |
| Gambar harus ditarik setelah penerapan — layanan privat | Buat repositori Container Registry publik yang dikelola sendiri agar gambar tetap dapat diakses saat proses pull. |
| Gambar harus ditarik setelah penerapan — layanan fully managed | Buat repositori Container Registry privat dan konfigurasikan komponen aliyun-acr-credential-helper di kluster Container Service for Kubernetes (ACK) Anda untuk menarik gambar tanpa kata sandi. |
| Gambar kontainer publik | Tarik langsung dari URL publik selama penerapan. Tidak diperlukan paket penyebaran. |
Cara kerja
Semua penyedia layanan berbagi satu repositori Container Registry publik Compute Nest. Compute Nest menetapkan namespace khusus untuk setiap penyedia yang dinamai sesuai ID akun Alibaba Cloud mereka, sehingga gambar tetap terisolasi antar penyewa.
Unggah gambar
Panggil API Compute Nest untuk mendapatkan kunci unggah sementara. Compute Nest memanggil API Container Registry dan mengembalikan kunci tercakup (scoped key) untuk namespace Anda.
Gunakan kunci sementara tersebut untuk mendorong (push) gambar lokal Anda ke repositori Container Registry. Gambar tersebut akan masuk ke namespace Anda.
Terapkan ke kluster ACK
Compute Nest menghasilkan kunci pull sementara yang tercakup pada namespace Anda dan menyimpannya sebagai Secret Kubernetes di kluster ACK target.
Compute Nest mengganti pengenal
{{ computenest::acrimage::yourimage }}dalam Template Resource Orchestration Service (ROS) Anda dengan URL gambar Container Registry yang sebenarnya, serta menetapkan Secret tersebut sebagaiimagePullSecret.Kluster ACK menarik dan menerapkan gambar tersebut.
Pengenal templat ROS
Tentukan pengenal berikut dalam templat ROS Anda. Compute Nest akan menggantinya dengan nilai aktual saat penerapan.
| Pengenal | Diganti dengan |
|---|---|
{{ computenest::acrimage::yourimage }} | URL Container Registry dari gambar terkait, contohnya: compute-nest-registry.cn-hangzhou.cr.aliyuncs.com/aliUid1/volcanosh/vc-controller-manager:1.0 |
{{ computenest::acr::dockerconfigjson }} | Kunci sementara yang digunakan untuk menarik gambar |
Contoh berikut menunjukkan resource ALIYUN::CS::ClusterApplication yang menggunakan kedua pengenal tersebut. Kunci pull disimpan dalam Secret bernama computenestrepo, yang kemudian dirujuk sebagai imagePullSecret untuk Penyebaran (Deployment).
Buat paket penyebaran gambar kontainer
Sebelum memulai, pastikan Anda telah:
Menginstal Docker dan membuat gambar Docker. Lihat Install and use Docker.
Memastikan bahwa paket penyebaran gambar kontainer sesuai dengan skenario Anda (lihat Batasan).
Masuk ke Konsol Compute Nest. Di panel navigasi kiri, klik Service Deployment Package. Di bagian Deployment Package, klik Create Deployment Package.
Di bagian Deployment Package Information, konfigurasikan parameter berikut.
Parameter Deskripsi Deployment Package Name Nama untuk paket penyebaran. Harus terdiri dari 3–128 karakter; hanya huruf, angka, dan garis bawah ( _). Tidak dapat diubah setelah dibuat.Version Name Nama untuk versi ini. Harus terdiri dari 3–50 karakter; hanya huruf, angka, dan garis bawah ( _).Description Deskripsi paket penyebaran. Harus terdiri dari 10–500 karakter. Resource Group Kelompok sumber daya tempat paket penyebaran akan ditugaskan. Kelompok sumber daya memungkinkan Anda mengatur sumber daya berdasarkan penggunaan, izin, dan wilayah. Lihat Manage resource groups. Tag Settings Tag yang akan dilampirkan ke paket penyebaran. Pilih atau masukkan kunci tag dan nilainya. Maksimal 20 tag per paket penyebaran. Untuk membuat tag kustom, lihat Add a custom tag. Konfigurasikan gambar kontainer. Contoh ini menggunakan gambar
apache-php5.Di bagian Deployment Package Content, atur Deployment Package Type menjadi Container Image.
Klik Obtain Access Credential untuk mendapatkan perintah login dan perintah push gambar ke repositori Container Registry Compute Nest.

Buka terminal dan jalankan perintah login untuk mengautentikasi ke repositori.

Beri tag gambar lokal Anda.

Dorong (push) gambar yang telah diberi tag ke repositori Container Registry Compute Nest.

Atur parameter Select Product, lalu klik Publish Deployment Package.
Kembali ke halaman Service Deployment Package. Di tab Packages, klik ID paket penyebaran. Di halaman Deployment Package Details, pastikan statusnya adalah Available.
Gunakan paket penyebaran gambar kontainer
Contoh ini membuat layanan privat untuk menunjukkan cara mereferensikan paket penyebaran gambar kontainer.
Masuk ke Konsol Compute Nest.
Di panel navigasi kiri, klik My Services. Di tab Created Services, klik Create Service.
Di halaman Create Service, atur Select Service Creation Method menjadi Custom Launch dan Select Service Type menjadi Private Service, lalu klik Next: Configure Settings.

Lengkapi bagian Basic Information. Di bagian Service Deployment, atur jenis input templat menjadi Custom Template, pilih Manually Import Template, atur Deployment Method menjadi ROS, lalu masukkan konten templat Anda. Dalam resource
ALIYUN::CS::ClusterApplication, sertakan kedua pengenal berikut:{{ computenest::acr::dockerconfigjson }}— kredensial pull{{ computenest::acrimage::yourimage }}— referensi gambar kontainer
Di bagian Deployment Package Association, temukan Set Container Image Association dan klik Select Deployment Package. Di kotak dialog Select Deployment Package (Container Image Association), pilih paket penyebaran dan versi yang telah Anda buat, lalu klik OK.
Lengkapi parameter yang tersisa dan klik Create Service. Setelah layanan dibuat, uji layanan tersebut. Setelah layanan lolos pengujian, verifikasi bahwa layanan memenuhi kriteria tinjauan Compute Nest dan kirimkan untuk ditinjau. Lihat Review criteria.
Di halaman detail layanan, buka tab Service Details. Di bagian Service Deployment, klik tab Associated Deployment Packages, lalu buka tab Associate Container Image untuk mengonfirmasi asosiasi paket penyebaran.
Langkah selanjutnya
Create a service — pelajari alur kerja lengkap pembuatan layanan di Compute Nest.
Delete a deployment package — hapus paket penyebaran atau versi yang tidak lagi diperlukan.
Create a version — publikasikan versi baru dari paket penyebaran yang sudah ada ketika gambar berubah.
Configure service update settings — kendalikan cara pembaruan paket penyebaran diterapkan ke layanan yang sedang berjalan.