Cache artefak di Azure Container Registry
Fitur cache artefak memungkinkan pengguna untuk menyimpan gambar kontainer dalam registri kontainer privat. Cache artefak tersedia di tingkat layanan Dasar, Standar, dan Premium.
Cache artefak meningkatkan manajemen gambar kontainer dengan menyediakan solusi penembolokan untuk repositori publik dan privat.
Cache artefak menawarkan operasi penarikan yang lebih cepat dan lebih andal melalui Azure Container Registry (ACR), menggunakan fitur seperti Geo-Replikasi dan dukungan Zona Ketersediaan untuk ketersediaan yang lebih tinggi dan kecepatan penarikan gambar.
Cache artefak memungkinkan registri cache dapat diakses melalui jaringan privat bagi pengguna untuk menyelaraskan dengan konfigurasi firewall dan standar kepatuhan dengan mulus.
Cache artefak mengatasi tantangan batas penarikan anonim yang diberlakukan oleh registri publik seperti Docker Hub. Dengan memungkinkan pengguna untuk menarik gambar dari ACR lokal, ia menghindari batas ini, memastikan pengiriman konten yang tidak terganggu dari sumber hulu dan menghilangkan kekhawatiran mencapai batas penarikan.
Terminologi
Aturan Cache - Aturan Cache adalah aturan yang dapat Anda buat untuk menarik artefak dari repositori yang didukung ke dalam cache Anda.
Aturan cache berisi empat bagian:
Nama Aturan - Nama aturan cache Anda. Contohnya,
Hello-World-Cache
.Sumber - Nama Registri Sumber.
Jalur Repositori - Jalur sumber repositori untuk menemukan dan mengambil artefak yang ingin Anda cache. Contohnya,
docker.io/library/hello-world
.Namespace Repositori ACR baru - Nama jalur repositori baru untuk menyimpan artefak. Contohnya,
hello-world
. Repositori belum dapat ada di dalam instans ACR.
Informasi Masuk
Kredensial adalah sekumpulan nama pengguna dan kata sandi untuk registri sumber. Anda memerlukan Kredensial untuk mengautentikasi dengan repositori publik atau privat. Kredensial berisi empat bagian
Kredensial - Nama kredensial Anda.
Server Masuk registri sumber - Server masuk registri sumber Anda.
Autentikasi Sumber - Lokasi brankas kunci untuk menyimpan kredensial.
Rahasia Nama Pengguna dan Kata Sandi- Rahasia yang berisi nama pengguna dan kata sandi.
Batasan
Cache hanya akan terjadi setelah setidaknya satu penarikan gambar selesai pada gambar kontainer yang tersedia. Untuk setiap gambar baru yang tersedia, penarikan gambar baru harus selesai. Cache artefak tidak secara otomatis menarik tag gambar baru saat tag baru tersedia. Ini ada di peta strategi tetapi tidak didukung dalam rilis ini.
Cache artefak hanya mendukung 1.000 aturan cache.
Dukungan upstram
Cache artefak saat ini mendukung registri upstram berikut:
Registri Upstream | Dukungan | Ketersediaan |
---|---|---|
Docker Hub | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI, portal Azure |
Registri Artefak Microsoft | Hanya mendukung penarikan yang tidak diatomatiskan. | Azure CLI, portal Azure |
Galeri Publik AWS Elastic Container Registry (ECR) | Hanya mendukung penarikan yang tidak diatomatiskan. | Azure CLI, portal Azure |
GitHub Container Registry | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI, portal Azure |
Nvidia | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI |
Dermaga | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI, portal Azure |
registry.k8s.io | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI |
Google Container Registry | Mendukung penarikan yang diautentikasi dan tidak diautentikasi. | Azure CLI |
Wildcard
Wildcard menggunakan tanda bintang (*) untuk mencocokkan beberapa jalur dalam registri gambar kontainer. Cache artefak saat ini mendukung wildcard berikut:
Catatan
Peta aturan cache dari Repositori Target => Repositori Sumber.
Wildcard Tingkat Registri
Kartubebas tingkat registri memungkinkan Anda untuk menyimpan semua repositori dari registri hulu.
Aturan Cache | Pemetaan | Contoh |
---|---|---|
contoso.azurecr.io/* => mcr.microsoft.com/* | Pemetaan untuk semua gambar di bawah ACR ke MCR. | contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1 contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2 |
Wildcard Tingkat Repositori
Wildcard tingkat repositori memungkinkan Anda untuk menyimpan semua repositori dari pemetaan registri upstram ke awalan repositori.
Aturan Cache | Pemetaan | Contoh |
---|---|---|
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* | Memetakan repositori tertentu di bawah ACR ke repositori yang sesuai di MCR. | contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime |
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/* contoso.azurecr.io/library/python/* => docker.io/library/python/* |
Memetakan repositori tertentu di bawah ACR ke repositori dari registri hulu yang berbeda. | contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1 contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3 |
Batasan untuk aturan cache berbasis Wildcard
Aturan cache wildcard menggunakan tanda bintang (*) untuk mencocokkan beberapa jalur dalam registri gambar kontainer. Aturan ini tidak dapat tumpang tindih dengan aturan cache wildcard lainnya. Dengan kata lain, jika Anda memiliki aturan cache kartubebas untuk jalur registri tertentu, Anda tidak dapat menambahkan aturan wildcard lain yang tumpang tindih dengannya.
Berikut adalah beberapa contoh aturan yang tumpang tindih:
Contoh 1:
Aturan cache yang ada: contoso.azurecr.io/* => mcr.microsoft.com/*
Cache baru sedang ditambahkan: contoso.azurecr.io/library/* => docker.io/library/*
Penambahan aturan cache baru diblokir karena jalur contoso.azurecr.io/library/*
repositori target tumpang tindih dengan aturan contoso.azurecr.io/*
wildcard yang ada .
Contoh 2:
Aturan cache yang ada: contoso.azurecr.io/library/*
=>mcr.microsoft.com/library/*
Cache baru ditambahkan: contoso.azurecr.io/library/dotnet/*
=>docker.io/library/dotnet/*
Penambahan aturan cache baru diblokir karena jalur contoso.azurecr.io/library/dotnet/*
repositori target tumpang tindih dengan aturan contoso.azurecr.io/library/*
wildcard yang ada .
Batasan untuk aturan cache statis/tetap
Aturan cache statis atau tetap lebih spesifik dan tidak menggunakan kartubebas. Mereka dapat tumpang tindih dengan aturan cache berbasis kartubebas. Jika aturan cache menentukan jalur repositori tetap, aturan tersebut memungkinkan tumpang tindih dengan aturan cache berbasis wildcard.
Contoh 1:
Aturan cache yang ada: contoso.azurecr.io/*
=>mcr.microsoft.com/*
Cache baru ditambahkan: contoso.azurecr.io/library/dotnet
=>docker.io/library/dotnet
Penambahan aturan cache baru diizinkan karena contoso.azurecr.io/library/dotnet
merupakan jalur statis dan dapat tumpang tindih dengan aturan contoso.azurecr.io/*
cache wildcard .
Mengaktifkan cache Artefak - Azure CLI
Anda dapat mengaktifkan cache Artefak di Azure Container Registry dengan atau tanpa autentikasi menggunakan Azure CLI dengan mengikuti langkah-langkahnya.
Prasyarat
- Anda dapat menggunakan Azure Cloud Shell atau penginstalan lokal Azure CLI untuk menjalankan contoh perintah dalam artikel ini. Jika Anda ingin menggunakannya secara lokal, diperlukan versi 2.46.0 atau yang lebih baru. Jalankan
az --version
untuk menemukan versi. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Anda memiliki Key Vault yang ada untuk menyimpan kredensial. Pelajari selengkapnya tentang membuat dan menyimpan kredensial di Key Vault.
- Anda dapat mengatur dan mengambil rahasia dari Key Vault Anda. Pelajari selengkapnya tentang mengatur dan mengambil rahasia dari Key Vault.
Konfigurasikan dan buat aturan Cache tanpa Kredensial.
Jalankan perintah az acr Cache create untuk membuat aturan Cache.
- Misalnya, untuk membuat aturan Cache tanpa kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
- Misalnya, untuk membuat aturan Cache tanpa kredensial untuk Azure Container Registry tertentu
Jalankan perintah az acr Cache show untuk menampilkan aturan Cache.
- Misalnya, untuk menampilkan aturan Cache untuk Azure Container Registry tertentu
MyRegistry
.
az acr Cache show -r MyRegistry -n MyRule
- Misalnya, untuk menampilkan aturan Cache untuk Azure Container Registry tertentu
Membuat kredensial
Sebelum mengonfigurasi Kredensial, Anda harus membuat dan menyimpan rahasia di Azure KeyVault dan mengambil rahasia dari Key Vault. Pelajari selengkapnya tentang membuat dan menyimpan kredensial di Key Vault. Dan untuk mengatur dan mengambil rahasia dari Key Vault..
Jalankan perintah az acr credential set create untuk membuat kredensial.
- Misalnya, Untuk membuat kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr credential-set create -r MyRegistry \ -n MyRule \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- Misalnya, Untuk membuat kredensial untuk Azure Container Registry tertentu
Jalankan az acr credential set update untuk memperbarui id rahasia KV nama pengguna atau kata sandi pada set kredensial.
- Misalnya, untuk memperbarui ID rahasia KV nama pengguna atau kata sandi pada kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Misalnya, untuk memperbarui ID rahasia KV nama pengguna atau kata sandi pada kredensial untuk Azure Container Registry tertentu
Jalankan az-acr-credential-set-show untuk memperlihatkan kredensial.
- Misalnya, untuk menampilkan kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr credential-set show -r MyRegistry -n MyCredSet
- Misalnya, untuk menampilkan kredensial untuk Azure Container Registry tertentu
Mengonfigurasi dan membuat aturan cache dengan kredensial
Jalankan perintah az acr cache create untuk membuat aturan cache.
- Misalnya, untuk membuat aturan cache dengan kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
- Misalnya, untuk membuat aturan cache dengan kredensial untuk Azure Container Registry tertentu
Jalankan perintah az acr cache update untuk memperbarui kredensial pada aturan cache.
- Misalnya, untuk memperbarui kredensial pada aturan cache untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache update -r MyRegistry -n MyRule -c NewCredSet
- Misalnya, untuk menghapus kredensial dari aturan cache yang ada untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache update -r MyRegistry -n MyRule --remove-cred-set
- Misalnya, untuk memperbarui kredensial pada aturan cache untuk Azure Container Registry tertentu
Jalankan perintah az acr cache show untuk menampilkan aturan cache.
- Misalnya, untuk menampilkan aturan cache untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache show -r MyRegistry -n MyRule
- Misalnya, untuk menampilkan aturan cache untuk Azure Container Registry tertentu
Menetapkan izin ke Key Vault
Dapatkan ID utama identitas sistem yang digunakan untuk mengakses Key Vault.
PRINCIPAL_ID=$(az acr credential-set show -n MyCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
Jalankan perintah az keyvault set-policy untuk menetapkan akses ke Key Vault, sebelum menarik gambar.
- Misalnya, untuk menetapkan izin untuk kredensial mengakses rahasia KeyVault
az keyvault set-policy --name MyKeyVault \ --object-id $PRINCIPAL_ID \ --secret-permissions get
Tarik gambar Anda
Tarik gambar dari cache Anda menggunakan perintah Docker dengan nama server login registri, nama repositori, dan tag yang diinginkan.
- Misalnya, untuk menarik gambar dari repositori
hello-world
dengan taglatest
yang diinginkan untuk servermyregistry.azurecr.io
login registri tertentu .
docker pull myregistry.azurecr.io/hello-world:latest
- Misalnya, untuk menarik gambar dari repositori
Membersihkan sumber daya
Jalankan perintah az acr cache list untuk mencantumkan aturan cache di Azure Container Registry.
- Misalnya, untuk mencantumkan aturan cache untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache list -r MyRegistry
- Misalnya, untuk mencantumkan aturan cache untuk Azure Container Registry tertentu
Jalankan perintah az acr cache delete untuk menghapus aturan cache.
- Misalnya, untuk menghapus aturan cache untuk Azure Container Registry tertentu
MyRegistry
.
az acr cache delete -r MyRegistry -n MyRule
- Misalnya, untuk menghapus aturan cache untuk Azure Container Registry tertentu
Jalankandaftar az acr credential set untuk mencantumkan kredensial di Azure Container Registry.
- Misalnya, untuk mencantumkan kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr credential-set list -r MyRegistry
- Misalnya, untuk mencantumkan kredensial untuk Azure Container Registry tertentu
Jalankan az-acr-credential-set-delete untuk menghapus kredensial.
- Misalnya, untuk menghapus kredensial untuk Azure Container Registry tertentu
MyRegistry
.
az acr credential-set delete -r MyRegistry -n MyCredSet
- Misalnya, untuk menghapus kredensial untuk Azure Container Registry tertentu
Mengaktifkan cache Artefak - portal Azure
Anda dapat mengaktifkan cache Artefak di Azure Container Registry Anda dengan atau tanpa autentikasi menggunakan portal Azure dengan mengikuti langkah-langkahnya.
Prasyarat
- Masuk ke portal Microsoft Azure.
- Anda memiliki Key Vault yang sudah ada untuk menyimpan kredensial. Pelajari selengkapnya tentang membuat dan menyimpan kredensial di Key Vault.
- Anda memiliki Brankas kunci yang ada tanpa kontrol Akses berbasis Peran (RBAC).
Mengonfigurasi cache Artefak tanpa kredensial
Ikuti langkah-langkah untuk membuat aturan cache di portal Azure.
Navigasikan ke Azure Container Registry Anda.
Di Menu samping, di bawah Layanan, pilih Cache.
Pilih Buat Aturan.
Jendela untuk Aturan cache baru muncul.
Masukkan Nama aturan.
Pilih Registri Sumber dari menu dropdown.
Masukkan Jalur Repositori ke artefak yang ingin Anda cache.
Anda dapat melewati Autentikasi, jika Anda tidak mengakses repositori privat atau melakukan penarikan terautentikasi.
Di bawah Tujuan, Masukkan nama Namespace Repositori ACR Baru untuk menyimpan artefak yang di-cache.
Pilih Simpan.
Tarik gambar dari cache Anda menggunakan perintah Docker dengan nama server login registri, nama repositori, dan tag yang diinginkan.
- Misalnya, untuk menarik gambar dari repositori
hello-world
dengan taglatest
yang diinginkan untuk servermyregistry.azurecr.io
login registri tertentu .
docker pull myregistry.azurecr.io/hello-world:latest
- Misalnya, untuk menarik gambar dari repositori
Mengonfigurasi cache Artefak dengan autentikasi
Ikuti langkah-langkah untuk membuat aturan cache di portal Azure.
Navigasikan ke Azure Container Registry Anda.
Di Menu samping, di bawah Layanan, pilih Cache.
Pilih Buat Aturan.
Jendela untuk Aturan cache baru muncul.
Masukkan Nama aturan.
Pilih Registri Sumber dari menu dropdown.
Masukkan Jalur Repositori ke artefak yang ingin Anda cache.
Untuk menambahkan autentikasi ke repositori, centang kotak Autentikasi .
Pilih Buat kredensial baru untuk membuat sekumpulan kredensial baru untuk menyimpan nama pengguna dan kata sandi untuk registri sumber Anda. Pelajari cara membuat kredensial baru.
Jika Anda sudah menyiapkan kredensial, Pilih kredensial dari menu drop-down.
Di bawah Tujuan, Masukkan nama Namespace Repositori ACR Baru untuk menyimpan artefak yang di-cache.
Pilih Simpan.
Tarik gambar dari cache Anda menggunakan perintah Docker dengan nama server login registri, nama repositori, dan tag yang diinginkan.
- Misalnya, untuk menarik gambar dari repositori
hello-world
dengan taglatest
yang diinginkan untuk servermyregistry.azurecr.io
login registri tertentu .
docker pull myregistry.azurecr.io/hello-world:latest
- Misalnya, untuk menarik gambar dari repositori
Membuat kredensial baru
Sebelum mengonfigurasi Kredensial, Anda harus membuat dan menyimpan rahasia di Azure KeyVault dan mengambil rahasia dari Key Vault. Pelajari selengkapnya tentang membuat dan menyimpan kredensial di Key Vault. Dan untuk mengatur dan mengambil rahasia dari Key Vault..
Navigasikan ke Kredensial>Buat kredensial.
Masukkan Nama untuk kredensial baru untuk registri sumber Anda.
Pilih Autentikasi Sumber. Cache artefak saat ini mendukung Pilih dari Key Vault dan Masukkan URI rahasia.
Untuk opsi Pilih dari Key Vault, Pelajari selengkapnya tentang membuat kredensial menggunakan brankas kunci.
Pilih Buat.
Langkah berikutnya
- Lanjutkan ke artikel berikutnya untuk menelusuri panduan pemecahan masalah untuk Cache Registri.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk