Aracılığıyla paylaş


Azure Container Registry'de yapıt önbelleği

Yapıt önbelleği özelliği, kullanıcıların kapsayıcı görüntülerini özel bir kapsayıcı kayıt defterinde önbelleğe almalarını sağlar. Yapıt önbelleği Temel, Standart ve Premium hizmet katmanlarında kullanılabilir.

Yapıt önbelleği, hem genel hem de özel depolar için bir önbelleğe alma çözümü sağlayarak kapsayıcı görüntüsü yönetimini geliştirir.

Yapıt önbelleği, daha yüksek kullanılabilirlik ve hızlı görüntü çekme işlemleri için Coğrafi Çoğaltma ve Kullanılabilirlik Alanı desteği gibi özellikleri kullanarak Azure Container Registry (ACR) aracılığıyla daha hızlı ve daha güvenilir çekme işlemleri sunar.

Yapıt önbelleği, kullanıcıların güvenlik duvarı yapılandırmaları ve uyumluluk standartlarıyla sorunsuz bir şekilde uyumlu olması için önbelleğe alınmış kayıt defterlerinin özel ağlar üzerinden erişilebilir olmasını sağlar.

Yapıt önbelleği, genel kayıt defterleri tarafından uygulanan çekme sınırlarının zorluğuna yöneliktir. Kullanıcıların önbellek kurallarının kimliğini yukarı akış kaynak kimlik bilgileriyle doğrulamasını öneririz. Ardından hız sınırlarını azaltmaya yardımcı olmak için yerel ACR'den görüntüleri çekin.

Terminoloji

  • Önbellek Kuralı - Önbellek Kuralı, desteklenen bir depodan yapıtları önbelleğinize çekmek için oluşturabileceğiniz bir kuraldır.

    • Önbellek kuralı dört bölüm içerir:

      • Kural Adı - Önbellek kuralınızın adı. Örneğin, Hello-World-Cache.

      • Source - Kaynak Kayıt Defteri'nin adı.

      • Depo Yolu - Önbelleğe almak istediğiniz yapıtları bulmak ve almak için deponun kaynak yolu. Örneğin, docker.io/library/hello-world.

      • Yeni ACR Deposu Ad Alanı - Yapıtları depolamak için yeni depo yolunun adı. Örneğin, hello-world. Depo, ACR örneğinin içinde zaten mevcut olamaz.

  • Referans

    • Kimlik bilgileri, kaynak kayıt defteri için bir kullanıcı adı ve parola kümesidir. Genel veya özel bir depoda kimlik doğrulaması yapmak için Kimlik Bilgilerine ihtiyacınız vardır. Kimlik bilgileri dört bölüm içerir

      • Kimlik Bilgileri - Kimlik bilgilerinizin adı.

      • Kaynak kayıt defteri Oturum Açma Sunucusu - Kaynak kayıt defterinizin oturum açma sunucusu.

      • Kaynak Kimlik Doğrulaması - Kimlik bilgilerini depolamak için anahtar kasası konumları.

      • Kullanıcı adı ve Parola gizli dizileri- Kullanıcı adı ve parolayı içeren gizli diziler.

Sınırlamalar

  • Önbellek yalnızca kullanılabilir kapsayıcı görüntüsünde en az bir görüntü çekme işlemi tamamlandıktan sonra gerçekleşir. Kullanılabilir her yeni görüntü için yeni bir görüntü çekme işleminin tamamlanması gerekir. Yapıt önbelleği, yeni bir etiket kullanılabilir olduğunda görüntülerin yeni etiketlerini otomatik olarak çekmez. Yol haritasında yer alır ancak bu sürümde desteklenmez.

  • Yapıt önbelleği yalnızca 1.000 önbellek kuralını destekler.

Yukarı akış desteği

Yapıt önbelleği şu anda aşağıdaki yukarı akış kayıt defterlerini destekler:

Uyarı

Müşterilerin Docker hub'ından kaynak içerik olarak ayarlanmış kimlik bilgileri oluşturması gerekir.

Yukarı Akış Kayıt Defterleri Destek Kullanılabilirlik
Docker Hub Yalnızca kimliği doğrulanmış çekmeleri destekler. Azure CLI, Azure portalı
Microsoft Yapıt Kayıt Defteri Yalnızca kimliği doğrulanmamış çekmeleri destekler. Azure CLI, Azure portalı
AWS Elastic Container Registry (ECR) Genel Galerisi Yalnızca kimliği doğrulanmamış çekmeleri destekler. Azure CLI, Azure portalı
GitHub Container Registry Hem kimliği doğrulanmış hem de kimliği doğrulanmamış çekmeleri destekler. Azure CLI, Azure portalı
Rıhtım Hem kimliği doğrulanmış hem de kimliği doğrulanmamış çekmeleri destekler. Azure CLI, Azure portalı
registry.k8s.io Hem kimliği doğrulanmış hem de kimliği doğrulanmamış çekmeleri destekler. Azure CLI
Google Container Registry Hem kimliği doğrulanmış hem de kimliği doğrulanmamış çekmeleri destekler. Azure CLI

Joker karakterler

Joker karakter, kapsayıcı görüntüsü kayıt defterindeki birden çok yolu eşleştirmek için yıldız işareti (*) kullanır. Yapıt önbelleği şu anda aşağıdaki joker karakterleri destekler:

Not

Önbellek kuralları Hedef Depo => Kaynak Depo'dan eşler.

Kayıt Defteri Düzeyi Joker Karakteri

Kayıt defteri düzeyi joker karakteri, yukarı akış kayıt defterinden tüm depoları önbelleğe almanızı sağlar.

Önbellek Kuralı Eşleme Örnek
contoso.azurecr.io/* => mcr.microsoft.com/* ACR altındaki tüm görüntüleri MCR'ye eşleme. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Depo Düzeyi Joker Karakteri

Depo düzeyi joker karakteri, bir yukarı akış kayıt defteri eşlemesinden depo ön ekine yapılan tüm depoları önbelleğe almanızı sağlar.

Önbellek Kuralı Eşleme Örnek
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* ACR altındaki belirli depoları MCR'deki ilgili depolara eşleme. 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/*
ACR altındaki belirli depoları farklı yukarı akış kayıt defterlerinden depolara eşleme. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Joker karakter tabanlı önbellek kuralları için sınırlamalar

Joker karakter önbellek kuralları, kapsayıcı görüntüsü kayıt defterindeki birden çok yolu eşleştirmek için yıldız işareti (*) kullanır. Bu kurallar diğer joker karakter önbellek kurallarıyla çakışamaz. Başka bir deyişle, belirli bir kayıt defteri yolu için joker karakter önbellek kuralınız varsa, onunla çakışan başka bir joker karakter kuralı ekleyemezsiniz.

Çakışan kuralların bazı örnekleri aşağıda verilmiştir:

Örnek 1:

Mevcut önbellek kuralı: contoso.azurecr.io/* => mcr.microsoft.com/*
Yeni önbellek ekleniyor: contoso.azurecr.io/library/* => docker.io/library/*

Hedef depo yolu contoso.azurecr.io/library/* mevcut joker karakter kuralıyla çakıştığı için yeni önbellek kuralının contoso.azurecr.io/*eklenmesi engellenir.

Örnek 2:

Mevcut önbellek kuralı: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Yeni önbellek ekleniyor: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

Hedef depo yolu contoso.azurecr.io/library/dotnet/* mevcut joker karakter kuralıyla çakıştığı için yeni önbellek kuralının contoso.azurecr.io/library/*eklenmesi engellenir.

Statik/sabit önbellek kuralları için sınırlamalar

Statik veya sabit önbellek kuralları daha belirgindir ve joker karakter kullanmaz. Joker karakter tabanlı önbellek kurallarıyla çakışabilir. Önbellek kuralı sabit bir depo yolu belirtiyorsa, joker karakter tabanlı önbellek kuralıyla çakışmaya izin verir.

Örnek 1:

Mevcut önbellek kuralı: contoso.azurecr.io/* =>mcr.microsoft.com/*
Yeni önbellek ekleniyor: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Statik bir yol olduğundan ve joker karakter önbellek kuralıyla çakışabileceğinden yeni önbellek kuralının contoso.azurecr.io/*eklenmesine izin verilircontoso.azurecr.io/library/dotnet.

Yapıt önbelleğini etkinleştirme - Azure CLI

Adımları izleyerek Azure CLI kullanarak Kimlik doğrulamasıyla veya kimlik doğrulaması olmadan Azure Container Registry'nizde Yapıt önbelleğini etkinleştirebilirsiniz.

Önkoşullar

  • Bu makaledeki komut örneklerini çalıştırmak için Azure Cloud Shell'i veya Azure CLI'nın yerel yüklemesini kullanabilirsiniz. Yerel olarak kullanmak isterseniz, sürüm 2.46.0 veya üzeri gereklidir. Sürümü bulmak için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
  • Kimlik bilgilerini depolamak için mevcut bir Key Vault'nuz var. Key Vault'ta kimlik bilgileri oluşturma ve depolama hakkında daha fazla bilgi edinin.
  • Key Vault'unuzda gizli dizileri ayarlayabilir ve alabilirsiniz. Key Vault'tan gizli dizi ayarlama ve alma hakkında daha fazla bilgi edinin.

Kimlik Bilgileri olmadan bir Önbellek kuralı yapılandırın ve oluşturun.

  1. Önbellek kuralı oluşturmak için az acr Cache create komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry'nin kimlik bilgileri olmadan önbellek kuralı oluşturmak için.
    az acr Cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu-
    
  2. Önbellek kuralını göstermek için az acr Cache show komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için Önbellek kuralını göstermek için.
     az acr Cache show -r MyRegistry -n MyRule
    

Kimlik bilgilerini oluşturma

Kimlik Bilgilerini yapılandırmadan önce Azure KeyVault'ta gizli diziler oluşturup depolamanız ve gizli dizileri Key Vault'tan almanız gerekir. Key Vault'ta kimlik bilgileri oluşturma ve depolama hakkında daha fazla bilgi edinin. Key Vault'tan bir gizli dizi ayarlayıp almak için..

  1. Kimlik bilgilerini oluşturmak için az acr credential set create komutunu çalıştırın.

    • Örneğin, Belirli MyRegistry bir Azure Container Registry için kimlik bilgilerini oluşturmak için.
    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. Bir kimlik bilgisi kümesindeki kullanıcı adı veya parola KV gizli dizisi kimliğini güncelleştirmek için az acr credential set update komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry'nin kimlik bilgilerindeki kullanıcı adı veya parola KV gizli dizi kimliğini güncelleştirmek için.
    az acr credential-set update -r MyRegistry -n MyRule -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
    
  3. Kimlik bilgilerini göstermek için az-acr-credential-set-show komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için kimlik bilgilerini göstermek için.
    az acr credential-set show -r MyRegistry -n MyCredSet
    

Kimlik bilgileriyle önbellek kuralı yapılandırma ve oluşturma

  1. Önbellek kuralı oluşturmak için az acr cache create komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry'nin kimlik bilgileriyle bir önbellek kuralı oluşturmak için.
    az acr cache create -r MyRegistry -n MyRule -s docker.io/library/ubuntu -t ubuntu -c MyCredSet
    
  2. Önbellek kuralındaki kimlik bilgilerini güncelleştirmek için az acr cache update komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için önbellek kuralındaki kimlik bilgilerini güncelleştirmek için.
    az acr cache update -r MyRegistry -n MyRule -c NewCredSet
    
    • Örneğin, belirli MyRegistry bir Azure Container Registry için mevcut önbellek kuralından kimlik bilgilerini kaldırmak için.
    az acr cache update -r MyRegistry -n MyRule --remove-cred-set
    
  3. Önbellek kuralını göstermek için az acr cache show komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için önbellek kuralını göstermek için.
     az acr cache show -r MyRegistry -n MyRule
    

Key Vault'a izin atama

  1. Key Vault'a erişmek için kullanılan sistem kimliğinin asıl kimliğini alın.

    PRINCIPAL_ID=$(az acr credential-set show 
                    -n MyCredSet \ 
                    -r MyRegistry  \
                    --query 'identity.principalId' \ 
                    -o tsv) 
    
  2. Görüntüyü çekmeden önce Key Vault'a erişim atamak için az keyvault set-policy komutunu çalıştırın.

    • Örneğin, kimlik bilgilerinin izinlerini atamak için KeyVault gizli dizisine erişin
    az keyvault set-policy --name MyKeyVault \
    --object-id $PRINCIPAL_ID \
    --secret-permissions get
    

Görüntünüzü çekme

  1. Kayıt defteri oturum açma sunucusu adı, depo adı ve istenen etiketiyle Docker komutunu kullanarak görüntüyü önbelleğinizden çekin.

    • Örneğin, belirli bir kayıt defteri oturum açma sunucusu myregistry.azurecr.ioiçin istenen etikete latest sahip görüntüyü depodan hello-world çekmek için.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Kaynakları temizleme

  1. Azure Container Registry'deki önbellek kurallarını listelemek için az acr cache list komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için önbellek kurallarını listelemek için.
     az acr cache list -r MyRegistry
    
  2. Önbellek kuralını silmek için az acr cache delete komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry için önbellek kuralını silmek için.
    az acr cache delete -r MyRegistry -n MyRule
    
  3. Azure Container Registry'de kimlik bilgilerini listelemek için az acr credential set list komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry'nin kimlik bilgilerini listelemek için.
    az acr credential-set list -r MyRegistry
    
  4. Kimlik bilgilerini silmek için az-acr-credential-set-delete komutunu çalıştırın.

    • Örneğin, belirli MyRegistry bir Azure Container Registry'nin kimlik bilgilerini silmek için.
    az acr credential-set delete -r MyRegistry -n MyCredSet
    

Yapıt önbelleğini etkinleştirme - Azure portalı

Adımları izleyerek Azure portalını kullanarak Kimlik doğrulamasıyla veya kimlik doğrulaması olmadan Azure Container Registry'nizde Yapıt önbelleğini etkinleştirebilirsiniz.

Önkoşullar

  • Azure portalda oturum açma
  • Kimlik bilgilerini depolamak için mevcut bir Key Vault'nuz var. Key Vault'ta kimlik bilgileri oluşturma ve depolama hakkında daha fazla bilgi edinin.
  • Rol tabanlı erişim (RBAC) denetimleri olmadan mevcut Anahtar kasalarınız var.

Kimlik bilgileri olmadan Yapıt önbelleğini yapılandırma

Azure portalında önbellek kuralı oluşturma adımlarını izleyin.

  1. Azure Container Registry'nize gidin.

  2. Yan menüdeki Hizmetler'in altında Önbellek'i seçin.

    Azure portalında Kayıt Defteri önbelleğinin ekran görüntüsü.

  3. Kural Oluştur'u seçin.

    Azure portalında Kural Oluştur'un ekran görüntüsü.

  4. Yeni önbellek kuralı için bir pencere görüntülenir.

    Azure portalında yeni Önbellek Kuralı için ekran görüntüsü.

  5. Kural adını girin.

  6. Açılan menüden Kaynak Kayıt Defteri'ni seçin.

  7. Önbelleğe almak istediğiniz yapıtların Depo Yolunu girin.

  8. Özel bir depoya erişmiyorsanız veya kimliği doğrulanmış bir çekme işlemi gerçekleştirmiyorsanız Kimlik Doğrulamayı atlayabilirsiniz.

  9. Hedef altında, önbelleğe alınmış yapıtları depolamak için Yeni ACR Deposu Ad Alanı'nın adını girin.

    Azure portalında Önbellek Kuralı'nın kaydedilmesi için ekran görüntüsü.

  10. Kaydet'i seçin.

  11. Kayıt defteri oturum açma sunucusu adı, depo adı ve istenen etiketiyle Docker komutunu kullanarak görüntüyü önbelleğinizden çekin.

    • Örneğin, belirli bir kayıt defteri oturum açma sunucusu myregistry.azurecr.ioiçin istenen etikete latest sahip görüntüyü depodan hello-world çekmek için.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Kimlik doğrulaması ile Yapıt önbelleğini yapılandırma

Azure portalında önbellek kuralı oluşturma adımlarını izleyin.

  1. Azure Container Registry'nize gidin.

  2. Yan menüdeki Hizmetler'in altında Önbellek'i seçin.

    Azure portalında Kayıt Defteri önbelleğinin ekran görüntüsü.

  3. Kural Oluştur'u seçin.

    Azure portalında Kural Oluştur'un ekran görüntüsü.

  4. Yeni önbellek kuralı için bir pencere görüntülenir.

    Azure portalında kimlik doğrulaması ile yeni Önbellek Kuralı ekran görüntüsü.

  5. Kural adını girin.

  6. Açılan menüden Kaynak Kayıt Defteri'ni seçin.

  7. Önbelleğe almak istediğiniz yapıtların Depo Yolunu girin.

  8. Depoya kimlik doğrulaması eklemek için Kimlik doğrulama kutusunu işaretleyin.

  9. Kaynak kayıt defterinizin kullanıcı adını ve parolasını depolamak üzere yeni bir kimlik bilgileri kümesi oluşturmak için Yeni kimlik bilgileri oluştur'u seçin. Yeni kimlik bilgileri oluşturmayı öğrenin.

  10. Kimlik bilgileri hazırsa, açılan menüden kimlik bilgilerini seçin.

  11. Hedef altında, önbelleğe alınmış yapıtları depolamak için Yeni ACR Deposu Ad Alanı'nın adını girin.

    Azure portalında Önbellek Kuralı'nın kaydedilmesi için ekran görüntüsü.

  12. Kaydet'i seçin.

  13. Kayıt defteri oturum açma sunucusu adı, depo adı ve istenen etiketiyle Docker komutunu kullanarak görüntüyü önbelleğinizden çekin.

    • Örneğin, belirli bir kayıt defteri oturum açma sunucusu myregistry.azurecr.ioiçin istenen etikete latest sahip görüntüyü depodan hello-world çekmek için.
     docker pull myregistry.azurecr.io/hello-world:latest
    

Yeni kimlik bilgileri oluşturma

Kimlik Bilgilerini yapılandırmadan önce Azure KeyVault'ta gizli diziler oluşturup depolamanız ve gizli dizileri Key Vault'tan almanız gerekir. Key Vault'ta kimlik bilgileri oluşturma ve depolama hakkında daha fazla bilgi edinin. Key Vault'tan bir gizli dizi ayarlayıp almak için..

  1. Kimlik Bilgileri Kimlik bilgileri> oluştur'a gidin.

    Azure portalında kimlik bilgileri ekleme ekran görüntüsü.

    Azure portalında yeni kimlik bilgileri oluşturma ekran görüntüsü.

  2. Kaynak kayıt defterinizin yeni kimlik bilgileri için Ad girin.

  3. Bir Kaynak Kimlik Doğrulaması seçin. Yapıt önbelleği şu anda Key Vault'tan seç ve Gizli dizi URI'lerini gir'i desteklemektedir.

  4. Key Vault'tan Seç seçeneği için Anahtar kasası kullanarak kimlik bilgileri oluşturma hakkında daha fazla bilgi edinin.

  5. Oluştur'u seçin.

Sonraki adımlar