Praktik terbaik untuk Azure Container Registry

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

Untuk latar belakang konsep registri, lihat Tentang registri, repositori, dan citra. Lihat juga Rekomendasi untuk memberi tag dan membuat versi citra kontainer untuk strategi memberi tag dan membuat versi citra 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 jaringan-dekat adalah salah satu alasan utama untuk menggunakan registri kontainer pribadi. Gambar Docker memiliki konstruksi lapisan yang efisien yang memungkinkan penyebaran bertahap. Namun, node baru perlu menarik semua lapisan yang diperlukan untuk citra tertentu. docker pull awal ini dapat dengan cepat bertambah hingga beberapa gigabyte. Memiliki registri pribadi yang dekat dengan penyebaran Anda meminimalkan latensi jaringan. Selain itu, semua cloud publik, termasuk Azure, menerapkan biaya keluar jaringan. Menarik citra dari satu pusat data ke pusat data lainnya menambah biaya keluar jaringan, selain latensi.

Penempatan multi-wilayah yang direplikasi 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 geografis registri Anda. Anda juga dapat mengonfigurasi webhook regional untuk memberi tahu Anda tentang peristiwa di replika tertentu seperti saat citra didorong.

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

Maksimalkan kinerja penarikan

Selain menempatkan citra dekat dengan penyebaran Anda, karakteristik citra Anda sendiri dapat memengaruhi kinerja penarikan.

  • Ukuran citra - Perkecil ukuran citra Anda dengan menghapus lapisan yang tidak perlu atau mengurangi ukuran lapisan. Salah satu cara untuk mengurangi ukuran citra adalah dengan menggunakan pendekatan pembuatan Docker multi-tahap untuk menyertakan hanya komponen waktu proses yang diperlukan.

    Periksa juga apakah gambar Anda dapat menyertakan citra OS dasar yang lebih terang. Jika Anda menggunakan lingkungan penyebaran seperti Azure Container Instances yang menyimpan citra dasar tertentu, periksa apakah Anda dapat menukar lapisan gambar untuk salah satu citra yang disimpan dalam 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 sampai 10 lapisan optimal.

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

Ruang nama repositori

Dengan menggunakan ruang nama repositori, Anda dapat mengizinkan berbagi satu registri di beberapa grup dalam organisasi Anda. Registri dapat dibagikan di seluruh penyebaran dan tim. Azure Container Registry mendukung ruang nama bersarang, memungkinkan isolasi grup. Namun, registri mengelola semua repositori secara independen, bukan sebagai hierarki.

Misalnya, pertimbangkan tag citra kontainer berikut. Citra yang digunakan di seluruh perusahaan, seperti aspnetcore, ditempatkan di ruang nama akar, sedangkan citra kontainter yang dimiliki oleh grup Produk dan Pemasaran masing-masing menggunakan ruang nama 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 pendaftar 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 kumpulan citra yang Anda masukkan ke Azure Container Registry. Dengan menempatkan registri Anda di grup sumber dayanya sendiri, Anda meminimalkan risiko secara tidak sengaja menghapus kumpulan citra di registri saat Anda menghapus grup sumber daya instans kontainer.

Autentikasi dan Otorisasi

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

Jenis Contoh skenario Metode yang disarankan
Identitas individu Pengembang menarik citra ke atau mendorong citra dari mesin pengembangan mereka. az acr login
Identitas tanpa kepala/layanan Membangun dan menerapkan alur di mana pengguna tidak terlibat secara langsung. Perwakilan 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 berbagai identitas. Dengan menggunakan kontrol akses berbasis peran, tetapkan izin yang sesuai untuk pengguna yang berbeda, prinsip layanan, atau identitas lain yang melakukan pengoperasian registri yang berbeda. Misalnya, tetapkan izin push ke prinsip layanan yang digunakan dalam alur build dan tetapkan izin pull ke identitas berbeda yang digunakan untuk penyebaran. Buat token untuk akses terperinci dan terbatas waktu ke repositori tertentu.

Kelola 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 kinerja skala tinggi 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 lainnya 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 kontainer saat ini dalam Ringkasan registri Anda di portal Microsoft Azure:

Informasi penggunaan registri di portal Azure

Catatan

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

Hapus data citra

Azure Container Registry mendukung beberapa metode untuk menghapus data citra dari registri kontainer Anda. Anda dapat menghapus citra dengan tag atau ringkasan manifes, atau menghapus seluruh repositori.

Untuk detail tentang menghapus data citra dari registri Anda, termasuk citra yang tidak ditandai (terkadang disebut "menggantung" atau "yatim piatu"), lihat Menghapus citra kontainer di Azure Container Registry. Anda juga dapat menyetel kebijakan retensi untuk manifes yang tidak diberi tag.

Langkah berikutnya

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

Untuk rekomendasi guna meningkatkan postur keamanan pendaftar kontainer Anda, lihat Azure Security Baseline untuk Azure Container Registry.