Bagikan melalui


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

Konfigurasikan dan buat aturan Cache tanpa Kredensial.

  1. 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-
    
  2. 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
    

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..

  1. 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
    
  2. 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
    
  3. 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
    

Mengonfigurasi dan membuat aturan cache dengan kredensial

  1. 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
    
  2. 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
    
  3. 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
    

Menetapkan izin ke Key Vault

  1. 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) 
    
  2. 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

  1. 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 tag latest yang diinginkan untuk server myregistry.azurecr.iologin registri tertentu .
     docker pull myregistry.azurecr.io/hello-world:latest
    

Membersihkan sumber daya

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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
    

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

Mengonfigurasi cache Artefak tanpa kredensial

Ikuti langkah-langkah untuk membuat aturan cache di portal Azure.

  1. Navigasikan ke Azure Container Registry Anda.

  2. Di Menu samping, di bawah Layanan, pilih Cache.

    Cuplikan layar untuk cache Registri di portal Azure.

  3. Pilih Buat Aturan.

    Cuplikan layar untuk Membuat Aturan di portal Azure.

  4. Jendela untuk Aturan cache baru muncul.

    Cuplikan layar untuk Aturan Cache baru di portal Azure.

  5. Masukkan Nama aturan.

  6. Pilih Registri Sumber dari menu dropdown.

  7. Masukkan Jalur Repositori ke artefak yang ingin Anda cache.

  8. Anda dapat melewati Autentikasi, jika Anda tidak mengakses repositori privat atau melakukan penarikan terautentikasi.

  9. Di bawah Tujuan, Masukkan nama Namespace Repositori ACR Baru untuk menyimpan artefak yang di-cache.

    Cuplikan layar untuk menyimpan Aturan Cache di portal Azure.

  10. Pilih Simpan.

  11. 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 tag latest yang diinginkan untuk server myregistry.azurecr.iologin registri tertentu .
     docker pull myregistry.azurecr.io/hello-world:latest
    

Mengonfigurasi cache Artefak dengan autentikasi

Ikuti langkah-langkah untuk membuat aturan cache di portal Azure.

  1. Navigasikan ke Azure Container Registry Anda.

  2. Di Menu samping, di bawah Layanan, pilih Cache.

    Cuplikan layar untuk cache Registri di portal Azure.

  3. Pilih Buat Aturan.

    Cuplikan layar untuk Membuat Aturan di portal Azure.

  4. Jendela untuk Aturan cache baru muncul.

    Cuplikan layar untuk Aturan Cache baru dengan autentikasi di portal Azure.

  5. Masukkan Nama aturan.

  6. Pilih Registri Sumber dari menu dropdown.

  7. Masukkan Jalur Repositori ke artefak yang ingin Anda cache.

  8. Untuk menambahkan autentikasi ke repositori, centang kotak Autentikasi .

  9. 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.

  10. Jika Anda sudah menyiapkan kredensial, Pilih kredensial dari menu drop-down.

  11. Di bawah Tujuan, Masukkan nama Namespace Repositori ACR Baru untuk menyimpan artefak yang di-cache.

    Cuplikan layar untuk menyimpan Aturan Cache di portal Azure.

  12. Pilih Simpan.

  13. 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 tag latest yang diinginkan untuk server myregistry.azurecr.iologin registri tertentu .
     docker pull myregistry.azurecr.io/hello-world:latest
    

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..

  1. Navigasikan ke Kredensial>Buat kredensial.

    Cuplikan layar untuk menambahkan kredensial di portal Azure.

    Cuplikan layar untuk membuat kredensial baru di portal Azure.

  2. Masukkan Nama untuk kredensial baru untuk registri sumber Anda.

  3. Pilih Autentikasi Sumber. Cache artefak saat ini mendukung Pilih dari Key Vault dan Masukkan URI rahasia.

  4. Untuk opsi Pilih dari Key Vault, Pelajari selengkapnya tentang membuat kredensial menggunakan brankas kunci.

  5. Pilih Buat.

Langkah berikutnya

  • Lanjutkan ke artikel berikutnya untuk menelusuri panduan pemecahan masalah untuk Cache Registri.