Replikasi geografis di Azure Container Registry

Perusahaan yang menginginkan kehadiran lokal atau cadangan panas memilih untuk menjalankan layanan dari beberapa wilayah Azure. Sebagai praktik terbaik, menempatkan registri kontainer di setiap wilayah di mana gambar dijalankan memungkinkan operasi dekat jaringan, memungkinkan transfer lapisan gambar yang cepat dan andal. Replikasi geografis memungkinkan registri kontainer Azure berfungsi sebagai registri tunggal, yang melayani beberapa wilayah dengan registri regional multi-primer.

Registri yang direplikasi secara geografis memberikan manfaat berikut:

  • Nama registri, gambar, dan tag tunggal dapat digunakan di beberapa wilayah
  • Meningkatkan kinerja dan keandalan penyebaran kawasan dengan akses registri yang dekat jaringan
  • Mengurangi biaya transfer data dengan menarik lapisan gambar dari registri lokal yang direplikasi di wilayah yang sama atau terdekat dengan host kontainer Anda
  • Manajemen tunggal registri di beberapa wilayah
  • Ketahanan registri jika terjadi pemadaman regional

Catatan

  • Jika Anda perlu menyimpan salinan gambar kontainer di lebih dari satu registri kontainer Azure, Azure Container Registry juga mendukung impor gambar. Misalnya, dalam alur kerja DevOps, Anda dapat mengimpor gambar dari registri pengembangan ke registri produksi tanpa perlu menggunakan perintah Docker.
  • Jika Anda ingin memindahkan registri ke wilayah Azure yang berbeda, alih-alih mereplikasi registri secara geografis, lihat Memindahkan registri kontainer secara manual ke wilayah lain.

Prasyarat

  • Pengguna memerlukan izin berikut (di tingkat registri) untuk membuat/menghapus replikasi:

    Izin Deskripsi
    Microsoft.ContainerRegistry/registries/write Membuat replikasi
    Microsoft.ContainerRegistry/registries/replications/write Menghapus replikasi

Contoh kasus penggunaan

Contoso menjalankan situs web untuk publik yang terletak di seluruh AS, Kanada, dan Eropa. Untuk melayani pasar ini dengan konten lokal dan dekat jaringan, Contoso menjalankan klaster Azure Kubernetes Service (AKS) di AS Barat, AS Timur, Kanada Tengah, dan Eropa Barat. Aplikasi situs web, yang digunakan sebagai gambar Docker, menggunakan kode dan gambar yang sama di semua wilayah. Konten lokal ke wilayah tersebut diambil dari database, yang disediakan secara unik di setiap wilayah. Setiap penyebaran regional memiliki konfigurasi unik untuk sumber daya seperti database lokal.

Tim pengembangan terletak di Seattle, WA, dan menggunakan pusat data AS Barat.

Mendorong ke beberapa registri
Mendorong ke beberapa registri

Sebelum menggunakan fitur replikasi geografis, Contoso memiliki registri yang berbasis di AS yaitu di AS Barat, dengan registri tambahan di Eropa Barat. Untuk melayani berbagai wilayah ini, tim pengembangan mendorong gambar ke dua registri yang berbeda.

docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

Menarik dari beberapa registri
Menarik dari beberapa registri

Tantangan umum dari beberapa registri meliputi:

  • Semua kluster US Timur, AS Barat, dan Kanada Tengah menarik dari registri AS Barat, dikenakan biaya keluar karena masing-masing host kontainer jarak jauh ini menarik gambar dari pusat data AS Barat.
  • Tim pengembangan harus mendorong gambar ke registri AS Barat dan Eropa Barat.
  • Tim pengembangan harus mengkonfigurasi dan memelihara setiap penyebaran kawasan dengan nama gambar yang merujuk pada registri lokal.
  • Akses registri harus dikonfigurasi untuk setiap wilayah.

Manfaat replikasi geografis

Menarik dari registri yang direplikasi geografis

Fitur replikasi geografis Azure Container Registry memiliki manfaat berikut:

  • Mengelola satu registri di semua wilayah: contoso.azurecr.io
  • Kelola penerapan gambar dengan konfigurasi tunggal karena semua wilayah menggunakan URL gambar yang sama: contoso.azurecr.io/public/products/web:1.2
  • Dorong ke satu registri sementara ACR secara otomatis mengelola replikasi geografis. ACR hanya mereplikasi lapisan unik, mengurangi transfer data di seluruh wilayah.
  • Konfigurasikan webhook regional untuk memberi tahu Anda tentang peristiwa dalam replika tertentu.
  • Menyediakan registri yang selalu tersedia yang tidak terpengaruh oleh pemadaman regional.

Azure Container Registry juga mendukung zona ketersediaan untuk membuat registri kontainer Azure yang tangguh dan berkualitas tinggi dalam wilayah Azure. Kombinasi zona ketersediaan untuk redundansi dalam suatu wilayah, dan replikasi geografis di beberapa wilayah, akan meningkatkan keandalan dan kinerja registri.

Mengonfigurasi replikasi geografis

Mengonfigurasi replikasi geografis semudah mengklik wilayah di peta. Anda juga dapat mengelola replikasi geografis menggunakan alat termasuk perintah replikasi az acr di Azure CLI, atau menerapkan registri yang diaktifkan untuk replikasi geografis dengan templat Azure Resource Manager.

Replikasi geografis adalah fitur dari Registri Premium. Jika registri Anda belum Premium, Anda dapat mengubah dari Basic dan Standard ke Premium di portal Microsoft Azure:

Beralih tingkat layanan di portal Microsoft Azure

Untuk mengonfigurasi replikasi geografis untuk registri Premium Anda, masuk ke portal Azure.

Navigasi ke Azure Container Registry Anda, dan pilih Replikasi:

Replikasi di UI registri kontainer portal Microsoft Azure

Peta ditampilkan memperlihatkan semua Wilayah Azure saat ini:

Peta wilayah di portal Microsoft Azure

  • Segi enam biru mewakili replika saat ini
  • Segi enam hijau mewakili kemungkinan wilayah replika
  • Segi enam abu-abu mewakili wilayah Azure yang belum tersedia untuk replikasi

Untuk mengkonfigurasi replika, pilih segi enam hijau, lalu pilih Buat:

Membuat UI replikasi di portal Microsoft Azure

Untuk mengkonfigurasi replika tambahan, pilih segi enam hijau untuk wilayah lain, lalu klik Buat.

ACR mulai menyinkronkan gambar di seluruh replika yang dikonfigurasi. Setelah selesai, portal akan menampilkan Siap. Status replika di portal tidak diperbarui secara otomatis. Gunakan tombol refresh untuk melihat status yang diperbarui.

Pertimbangan untuk menggunakan registri yang direplikasi secara geografis

  • Setiap wilayah dalam registri yang direplikasi secara geografis independen setelah disiapkan. SLA Azure Container Registry berlaku untuk setiap wilayah yang direplikasi secara geografis.
  • Untuk setiap operasi gambar pendorongan atau penarikan pada registri yang direplikasi secara geografis, Azure Traffic Manager di latar belakang mengirimkan permintaan ke lokasi terdekat registri di wilayah tersebut untuk mempertahankan latensi jaringan.
  • Setelah Anda mendorong pembaruan gambar atau tag ke wilayah terdekat, perlu beberapa waktu bagi Azure Container Registry untuk mereplikasi manifes dan lapisan ke wilayah yang tersisa yang Anda pilih. Gambar yang lebih besar membutuhkan waktu lebih lama untuk direplikasi dibandingkan yang lebih kecil. Gambar dan tag disinkronkan di seluruh wilayah replikasi dengan model konsistensi yang memungkinkan.
  • Untuk mengelola alur kerja yang bergantung pada pembaruan pendorongan ke registri yang direplikasi secara geografis, kami sarankan Anda mengkonfigurasi webhook untuk merespons peristiwa pendorongan. Anda dapat mengatur webhook regional dalam registri yang direplikasi secara geografis untuk melacak peristiwa push saat selesai di seluruh wilayah yang direplikasi geografis.
  • Untuk menyajikan blob yang mewakili lapisan konten, Azure Container Registry menggunakan titik akhir data. Anda dapat mengaktifkan titik akhir data khusus untuk registri Anda di setiap wilayah yang direplikasi secara geografis pada registri Anda. Titik akhir ini memungkinkan konfigurasi aturan akses firewall yang tercakup secara ketat. Untuk tujuan pemecahan masalah, Anda dapat secara opsional menonaktifkan perutean pada replikasi sambil memelihara data yang direplikasi.
  • Jika Anda mengkonfigurasi tautan pribadi untuk registri Anda menggunakan titik akhir privat di jaringan virtual, titik akhir data khusus di setiap wilayah yang direplikasi geografis akan diaktifkan secara default.

Pertimbangan untuk ketersediaan tinggi

  • Untuk ketersediaan dan ketahanan tinggi, sebaiknya buat registri di wilayah yang mendukung pengaktifan redundansi zona. Mengaktifkan redundansi zona di setiap wilayah replika juga disarankan.
  • Jika pemadaman terjadi di wilayah asal registri (wilayah tempat registri dibuat) atau salah satu wilayah replika registri, registri yang direplikasi secara geografis tetap tersedia untuk operasi data plane seperti mendorong atau menarik gambar kontainer.
  • Jika wilayah asal registri menjadi tidak tersedia, Anda mungkin tidak dapat melakukan operasi manajemen registri, termasuk mengonfigurasi aturan jaringan, mengaktifkan zona ketersediaan, dan mengelola replika.
  • Untuk merencanakan ketersediaan tinggi registri yang direplikasi secara geografis yang dienkripsi dengan kunci yang dikelola pelanggan yang disimpan dalam brankas kunci Azure, tinjau panduan untuk failover dan redundansi brankas kunci.

Menghapus replika

Setelah mengkonfigurasi replika untuk registri, Anda dapat menghapusnya kapan saja jika tidak lagi diperlukan. Hapus replika menggunakan portal Microsoft Azure atau alat lain seperti perintah hapus replikasi az acr di Azure CLI.

Untuk menghapus replika di portal Microsoft Azure:

  1. Navigasi ke Azure Container Registry Anda dan pilih Replikasi.
  2. Pilih nama replika dan pilih Hapus. Konfirmasikan bahwa Anda ingin menghapus replika.

Untuk menggunakan Azure CLI untuk menghapus replika myregistry di wilayah AS Timur:

az acr replication delete --name eastus --registry myregistry

Biaya replikasi geografis

Replikasi geografis adalah fitur dari tingkat layanan Premium Azure Container Registry. Ketika Anda mereplikasi registri ke wilayah yang Anda inginkan, Anda dikenakan biaya registri Premium untuk setiap wilayah.

Dalam contoh sebelumnya, Contoso mengkonsolidasikan dua registri menjadi satu, menambahkan replika ke AS Timur, Kanada Tengah, dan Eropa Barat. Contoso akan membayar empat kali biaya Premium per bulan, tanpa konfigurasi atau pengelolaan tambahan. Setiap wilayah sekarang menarik gambar mereka secara lokal, meningkatkan performa dan keandalan tanpa biaya keluar jaringan dari AS Barat ke Kanada dan AS Timur.

Memecahkan masalah operasi pendorongan dengan registri yang direplikasi secara geografis

Klien Docker yang mendorong gambar ke registri yang direplikasi geografis mungkin tidak mendorong semua lapisan gambar dan manifesnya ke satu wilayah yang direplikasi. Hal ini dapat terjadi karena Azure Traffic Manager merutekan permintaan registri ke registri yang direplikasi jaringan. Jika registri memiliki dua wilayah replikasi terdekat, lapisan gambar dan manifes dapat didistribusikan ke dua situs, dan operasi pendorongan gagal ketika manifes divalidasi. Masalah ini terjadi karena cara nama DNS registri diselesaikan pada beberapa host Linux. Masalah ini tidak terjadi pada Windows, yang menyediakan singgahan DNS dari sisi klien.

Jika masalah ini terjadi, salah satu solusinya adalah menerapkan cache DNS pihak klien seperti dnsmasq pada host Linux. Ini membantu memastikan bahwa nama registri diselesaikan secara konsisten. Jika Anda menggunakan VM Linux di Azure untuk mendorong ke registri, lihat opsi di pilihan Resolusi Nama DNS untuk komputer virtual Linux di Azure.

Untuk mengoptimalkan resolusi DNS ke replika terdekat saat mendorong gambar, konfigurasikan registri yang direplikasi secara geografis di wilayah Azure yang sama dengan sumber operasi pendorongan, atau wilayah terdekat saat bekerja di luar Azure.

Menonaktifkan perutean replikasi untuk sementara waktu

Untuk memecahkan masalah operasi dengan registri yang direplikasi secara geografis, Anda mungkin ingin menonaktifkan perutean Traffic Manager untuk satu atau beberapa replikasi untuk sementara. Dimulai di Azure CLI versi 2.8, Anda dapat mengkonfigurasi opsi (pratinjau) --region-endpoint-enabled saat membuat atau memperbarui wilayah yang direplikasi. Saat Anda menetapkan opsi replikasi --region-endpoint-enabled ke false, Traffic Manager tidak lagi merutekan pendorongan docker atau menarik permintaan ke wilayah tersebut. Secara default, perutean ke semua replikasi diaktifkan, dan sinkronisasi data di semua replikasi terjadi saat perutean diaktifkan atau dinonaktifkan.

Untuk menonaktifkan perutean ke replikasi yang ada, pertama-tama jalankan daftar replikasi az acr untuk mencantumkan replikasi dalam registri. Kemudian, jalankan pembaruan replikasi az acr dan atur --region-endpoint-enabled false untuk replikasi tertentu. Misalnya, untuk mengkonfigurasi pengaturan untuk replikasi westus dalam myregistry:

# Show names of existing replications
az acr replication list --registry --output table

# Disable routing to replication
az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled false

Untuk memulihkan perutean ke replikasi:

az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled true

Membuat replikasi untuk registri yang diaktifkan Titik Akhir Privat

Saat membuat replikasi registri baru untuk registri utama yang diaktifkan dengan Titik Akhir Privat, sebaiknya validasi bahwa Identitas Pengguna memiliki izin pembuatan Titik Akhir Privat yang valid. Jika tidak, opn macet dalam status provisi saat membuat replikasi.

Ikuti langkah-langkah di bawah ini jika Anda terjebak dalam status provisi saat membuat replikasi registri:

  • Hapus replikasi secara manual yang terjebak dalam status provisi.
  • Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write Tambahkan izin untuk Identitas Pengguna.
  • Buat ulang permintaan replikasi registri.

Pemeriksaan izin ini hanya berlaku untuk registri dengan Titik Akhir Privat diaktifkan.

Langkah berikutnya

Lihat seri tutorial tiga bagian, Replikasi geografis di Azure Container Registry. Melalui pembuatan registri yang direplikasi secara geografis, membangun wadah, lalu menerapkannya dengan perintah tunggal docker push ke beberapa regional Web Apps untuk instans Kontainer.