Memindahkan registri kontainer secara manual ke wilayah lain
Anda mungkin perlu memindahkan registri kontainer Azure dari satu wilayah Azure ke wilayah lainnya. Misalnya, Anda dapat menjalankan alur pengembangan atau menghosting target penyebaran baru di wilayah yang berbeda, dan ingin menyediakan registri terdekat.
Meskipun Azure Resource Mover saat ini tidak dapat mengotomatiskan perpindahan untuk registri kontainer Azure, Anda dapat memindahkan registri kontainer secara manual ke wilayah yang berbeda:
- Ekspor pengaturan registri ke templat Resource Manager.
- Menggunakan templat untuk menyebarkan registri di wilayah Azure yang berbeda
- Mengimpor konten registri dari registri sumber ke registri target
Catatan
Jika Anda ingin mendistribusikan citra kontainer yang identik di beberapa wilayah Azure, Azure Container Registry juga mendukung replikasi geografis. Dengan mereplikasi registri secara geografis (diperlukan tingkat layanan Premium), Anda dapat melayani beberapa wilayah dengan nama citra dan tag yang identik dari satu registri.
Prasyarat
Azure CLI
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih memilih untuk menjalankan perintah referensi CLI secara lokal, pasang Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Pertimbangan
- Gunakan langkah-langkah dalam artikel ini untuk memindahkan registri ke wilayah yang berbeda dalam langganan yang sama. Konfigurasi lainnya mungkin diperlukan untuk memindahkan registri ke langganan Azure yang berbeda di penyewa Direktori Aktif yang sama.
- Mengekspor dan menggunakan template Resource Manager dapat membantu membuat kembali banyak pengaturan registri. Anda dapat mengedit template untuk mengonfigurasi lebih banyak pengaturan atau memperbarui registri target setelah pembuatan.
- Saat ini, Azure Container Registry tidak mendukung perpindahan registri ke penyewa Direktori Aktif yang berbeda. Batasan ini berlaku untuk kedua pendaftar yang dienkripsi dengan kunci yang dikelola pelanggan dan pendaftar yang tidak terenkripsi.
- Jika Anda tidak dapat memindahkan registri yang diuraikan dalam artikel ini, buat registri baru, buat ulang pengaturan secara manual, dan Impor konten registri di registri target.
- Anda dapat menemukan langkah-langkah untuk memindahkan sumber daya registri ke grup sumber daya baru dalam langganan yang sama atau memindahkan sumber daya ke langganan baru.
Mengekspor template dari registri sumber
Gunakan portal Azure, Azure CLI, Azure PowerShell, atau alat Azure lainnya untuk mengekspor template Resource Manager. Untuk menggunakan portal Microsoft Azure:
Di portal Azure, navigasike registri sumber Anda.
Di menu, pada Automasi, pilih Ekspor template>Unduh.
Menyebarkan ulang registri target di wilayah baru
Mengubah template
Periksa properti registri dalam file JSON template yang Anda unduh, dan buat perubahan yang diperlukan. Paling sedikit:
- Mengubah
defaultValue
nama registri ke nama yang diinginkan dari registri target - Memperbarui
location
wilayah Azure yang diinginkan untuk registri target
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"registries_myregistry_name": {
"defaultValue": "myregistry",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.ContainerRegistry/registries",
"apiVersion": "2020-11-01-preview",
"name": "[parameters('myregistry_name')]",
"location": "centralus",
...
}
]
}
Untuk mengetahui informasi selengkapnya, lihat Gunakan template yang diekspor dari portal Azure dan referensi template.
Penting
Jika Anda ingin mengenkripsi registri target menggunakan kunci yang dikelola pelanggan, pastikan untuk memperbarui template dengan pengaturan untuk identitas terkelola, brankas kunci, dan kunci yang diperlukan. Anda hanya dapat mengaktifkan kunci yang dikelola pelanggan saat menggunakan registri.
Untuk mengetahui informasi selengkapnya, lihat Enkripsi registri menggunakan kunci yang dikelola pelanggan.
Buat grup sumber daya
Buat grup sumber daya untuk registri target menggunakan az group create. Contoh berikut ini membuat grup sumber daya bernama myResourceGroup di lokasi eastus.
az group create --name myResourceGroup --location eastus
Menyebarkan registri target di wilayah baru
Gunakan perintah az deployment group create untuk menyebarkan registri target, menggunakan template:
az deployment group create --resource-group myResourceGroup \
--template-file template.json --name mydeployment
Catatan
Jika Anda melihat kesalahan selama penyebaran, Anda mungkin perlu memperbarui konfigurasi tertentu dalam file template dan mencoba kembali perintah.
Mengimpor konten registri di registri target
Setelah membuat registri di wilayah target, gunakan perintah az acr import, atau perintah PowerShell yang setara Import-AzContainerImage
, untuk mengimpor gambar dan artefak lain yang ingin Anda simpan dari registri sumber ke registri target. Untuk contoh perintah, lihat Mengimpor gambar kontainer ke registri kontainer.
- Gunakan perintah Azure CLI az acr repository list dan az acr repository show-tags, atau setara Azure PowerShell, untuk membantu menghitung konten registri sumber Anda.
- Jalankan perintah impor untuk artefak individu, atau buat skripnya untuk menjalankan daftar artefak.
Sampel skrip Azure CLI berikut menghitung repositori sumber dan tag, kemudian mengimpor artefak ke registri target di langganan Azure yang sama. Modifikasi sesuai kebutuhan untuk mengimpor repositori atau tag tertentu. Untuk mengimpor dari registri dalam berbagai langganan atau penyewa, lihat contoh dalam Mengimpor gambar kontainer ke registri kontainer.
#!/bin/bash
# Modify registry names for your environment
SOURCE_REG=myregistry
TARGET_REG=targetregistry
# Get list of source repositories
REPO_LIST=$(az acr repository list \
--name $SOURCE_REG --output tsv)
# Enumerate tags and import to target registry
for repo in $REPO_LIST; do
TAGS_LIST=$(az acr repository show-tags --name $SOURCE_REG --repository $repo --output tsv);
for tag in $TAGS_LIST; do
echo "Importing $repo:$tag";
az acr import --name $TARGET_REG --source $SOURCE_REG.azurecr.io/$repo":"$tag;
done
done
Memverifikasi registri target
Konfirmasikan informasi berikut di registri target Anda:
- Pengaturan registri seperti nama registri, tingkat layanan, akses publik, dan replikasi
- Repositori dan tag untuk konten yang ingin Anda simpan.
Konfigurasi tambahan
Jika diperlukan, konfigurasikan pengaturan secara manual di registri target seperti titik akhir privat, aturan akses IP, dan identitas terkelola.
Perbarui sistem pengembangan dan penyebaran untuk menggunakan registri target alih-alih registri sumber.
Perbarui aturan firewall klien apa pun untuk memungkinkan akses ke registri target.
Menghapus registri asli
Setelah Anda berhasil menerapkan registri target, konten yang dimigrasikan, dan pengaturan registri terverifikasi, Anda dapat menghapus registri sumber.
Langkah berikutnya
- Pelajari lebih lanjut tentang mengimpor gambar kontainer ke registri kontainer Azure dari registri publik atau registri privat lainnya.
- Lihat referensi template Resource Manager untuk Azure Container Registry.