Bagikan melalui


Praktik terbaik untuk Azure Container Registry

Dengan mengikuti praktik terbaik ini, Anda dapat membantu memaksimalkan performa dan penggunaan registri privat Anda yang hemat biaya di Azure untuk menyimpan dan menyebarkan gambar kontainer dan artefak lainnya.

Untuk latar belakang konsep registri, lihat Tentang registri, repositori, dan gambar. Lihat juga Rekomendasi untuk menandai dan memberi versi pada gambar kontainer sebagai strategi menandai dan memberi versi gambar di registri Anda.

Penyebaran dekat jaringan

Buat registri kontainer Anda di wilayah Azure yang sama tempat Anda menyebarkan kontainer. Menempatkan registri Anda di wilayah yang dekat dengan jaringan dengan host kontainer Anda dapat membantu menurunkan latensi dan biaya.

Penyebaran dekat jaringan adalah salah satu alasan utama untuk menggunakan registri kontainer privat. Gambar Docker memiliki konstruksi lapisan efisien yang memungkinkan penyebaran bertahap. Namun, simpul baru perlu mengunduh semua lapisan yang diperlukan untuk gambar spesifik. Inisial docker pull ini dapat dengan cepat bertambah menjadi beberapa gigabyte. Memiliki registri privat yang dekat dengan penyebaran Anda meminimalkan latensi jaringan. Selain itu, semua cloud publik, termasuk Azure, menerapkan biaya keluar jaringan. Menarik gambar dari satu pusat data ke pusat data lainnya menambahkan biaya keluar jaringan, selain latensi.

Mereplikasi penyebaran multi-wilayah secara geografis

Gunakan fitur replikasi geografis Azure Container Registry jika Anda menyebarkan kontainer ke beberapa wilayah. Baik Anda melayani pelanggan global dari pusat data lokal atau tim pengembangan Anda berada di lokasi yang berbeda, Anda dapat menyederhanakan manajemen registri dan meminimalkan latensi dengan mereplikasi registri Anda secara geografis. Anda juga dapat mengonfigurasi webhook regional untuk memberi tahu Anda tentang kejadian di replika tertentu, seperti saat gambar diunggah.

Replikasi geografis tersedia dengan registri Premium . Untuk mempelajari cara menggunakan replikasi geografis, lihat tutorial tiga bagian, Replikasi geografis di Azure Container Registry.

Memaksimalkan performa penarikan

Selain menempatkan gambar Anda di lokasi yang berdekatan dengan deployment Anda, karakteristik gambar tersebut juga dapat memengaruhi performa pengambilan data.

  • Ukuran gambar - Minimalkan ukuran gambar Anda dengan menghapus lapisan yang tidak perlu atau mengurangi ukuran lapisan. Salah satu cara untuk mengurangi ukuran gambar adalah dengan menggunakan pendekatan build Docker multi-tahap untuk hanya menyertakan komponen runtime yang diperlukan.

    Periksa juga apakah gambar Anda dapat menyertakan gambar OS dasar yang lebih ringan. Dan jika Anda menggunakan lingkungan penyebaran seperti Azure Container Instances yang menyimpan gambar dasar tertentu, periksa apakah Anda dapat menukar lapisan gambar untuk salah satu gambar yang di-cache.

  • Jumlah lapisan - Seimbangkan jumlah lapisan yang digunakan. Jika Anda memiliki terlalu sedikit, Anda tidak mendapat manfaat dari penggunaan kembali lapisan dan cache pada host. Terlalu banyak, dan lingkungan penyebaran Anda menghabiskan lebih banyak waktu untuk menarik dan mendekompresi. Lima hingga 10 lapisan optimal.

Pilih juga tingkat layanan Azure Container Registry yang memenuhi kebutuhan performa Anda. Tingkat Premium menyediakan bandwidth terbesar dan tingkat operasi baca dan tulis bersamaan tertinggi ketika Anda memiliki penyebaran volume tinggi.

Nama ruang repositori

Dengan menggunakan namespace repositori, Anda dapat mengizinkan berbagi satu registri di beberapa grup dalam organisasi Anda. Registri dapat dibagikan antara implementasi dan tim. Azure Container Registry mendukung namespace berlapis, memungkinkan isolasi grup. Namun, registri mengelola semua repositori secara independen, bukan sebagai hierarki.

Misalnya, pertimbangkan tag gambar kontainer berikut. Gambar yang digunakan di seluruh perusahaan, seperti aspnetcore, ditempatkan di namespace layanan akar, sementara gambar kontainer yang dimiliki oleh grup Produk dan Pemasaran masing-masing menggunakan namespace layanan mereka sendiri.

  • contoso.azurecr.io/aspnetcore:2.0
  • contoso.azurecr.io/products/widget/web:1
  • contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
  • contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Grup sumber daya khusus

Karena registri kontainer adalah sumber daya yang digunakan di beberapa host kontainer, registri harus berada di grup sumber dayanya sendiri.

Meskipun Anda mungkin bereksperimen dengan jenis host tertentu, seperti Azure Container Instances, Anda mungkin ingin menghapus instans kontainer setelah selesai. Namun, Anda mungkin juga ingin menyimpan koleksi gambar yang Anda dorong ke Azure Container Registry. Dengan menempatkan registri Anda di grup sumber dayanya sendiri, Anda meminimalkan risiko menghapus koleksi gambar secara tidak sengaja di registri saat Anda menghapus grup sumber daya instans kontainer.

Autentikasi dan otorisasi

Saat mengautentikasi dengan registri kontainer Azure, ada dua skenario utama: autentikasi individu, dan autentikasi layanan (atau "tanpa kepala"). Tabel berikut ini memberikan gambaran singkat tentang skenario ini, dan metode autentikasi yang direkomendasikan untuk masing-masing skenario.

Tipe Contoh skenario Metode yang direkomendasikan
Identitas individu Pengembang mengunduh gambar ke atau mengunggah gambar dari alat pengembangan mereka. az acr login
Identitas tanpa kepala/layanan Membangun dan menyebarkan alur di mana pengguna tidak terlibat secara langsung. Prinsipal layanan

Untuk informasi mendalam tentang ini dan skenario autentikasi Azure Container Registry lainnya, lihat Mengautentikasi dengan registri kontainer Azure.

Azure Container Registry mendukung praktik keamanan di organisasi Anda untuk mendistribusikan tugas dan hak istimewa ke identitas yang berbeda. Menggunakan kontrol akses berbasis peran, tetapkan izin yang sesuai untuk pengguna, perwakilan layanan, atau identitas lain yang berbeda yang melakukan operasi registri yang berbeda. Misalnya, tetapkan hak akses push ke prinsipal layanan yang digunakan dalam pipeline build dan tetapkan hak akses pull ke identitas lain yang digunakan untuk penyebaran. Gunakan izin repositori berbasis Microsoft Entra untuk akses halus ke repositori tertentu. Atau, Anda dapat menggunakan izin repositori berbasis token non-Microsoft Entra.

Mengelola ukuran registri

Batasan penyimpanan setiap tingkat layanan registri kontainer dimaksudkan untuk menyelaraskan dengan skenario umum: Dasar untuk memulai, Standar untuk sebagian besar aplikasi produksi, dan Premium untuk performa skala hiper dan replikasi geografis. Sepanjang masa pakai registri, Anda harus mengelola ukurannya dengan menghapus konten yang tidak digunakan secara berkala.

Gunakan perintah Azure CLI az acr show-usage untuk menampilkan konsumsi penyimpanan saat ini dan sumber daya lain di registri Anda:

az acr show-usage --resource-group myResourceGroup --name myregistry --output table

Contoh output:

NAME                        LIMIT         CURRENT VALUE    UNIT
--------------------------  ------------  ---------------  ------
Size                        536870912000  215629144        Bytes
Webhooks                    500           1                Count
Geo-replications            -1            3                Count
IPRules                     100           1                Count
VNetRules                   100           0                Count
PrivateEndpointConnections  10            0                Count

Anda juga dapat menemukan penggunaan penyimpanan saat ini di Gambaran Umum registri Anda di portal Microsoft Azure:

Informasi penggunaan registri di portal Microsoft Azure

Nota

Dalam registri yang direplikasi secara geografis , penggunaan penyimpanan ditampilkan untuk wilayah asal. Kalikan dengan jumlah replikasi untuk total penyimpanan registri yang digunakan.

Menghapus data gambar

Azure Container Registry mendukung beberapa metode untuk menghapus data gambar dari registri kontainer Anda. Anda dapat menghapus gambar berdasarkan tag atau digest manifes, atau menghapus seluruh repositori.

Untuk detail tentang menghapus data gambar dari registri Anda, termasuk gambar tak bertanda (kadang disebut gambar "menggantung" atau "yatim piatu"), lihat Menghapus gambar kontainer di Azure Container Registry. Anda juga dapat mengatur kebijakan penyimpanan untuk manifes yang tidak diberi tag.

Langkah selanjutnya

Azure Container Registry tersedia dalam beberapa tingkatan (juga disebut SKU) yang menyediakan kemampuan yang berbeda. Untuk detail tentang tingkat layanan yang tersedia, lihat Tingkat layanan Azure Container Registry.

Untuk rekomendasi untuk meningkatkan postur keamanan registri kontainer Anda, lihat Garis Besar Keamanan Azure untuk Azure Container Registry.