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.
Ö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-
- Örneğin, belirli
Ö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
- Örneğin, belirli
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..
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 MyDockerHubCredSet \ -l docker.io \ -u https://MyKeyvault.vault.azure.net/secrets/usernamesecret \ -p https://MyKeyvault.vault.azure.net/secrets/passwordsecret
- Örneğin, Belirli
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 MyDockerHubCredSet -p https://MyKeyvault.vault.azure.net/secrets/newsecretname
- Örneğin, belirli
Kimlik bilgilerini göstermek için az acr credential-set show komutunu çalıştırın.
- Örneğin, belirli
MyRegistry
bir Azure Container Registry'de ayarlanmış bir kimlik bilgilerini göstermek için.
az acr credential-set show -r MyRegistry -n MyDockerHubCredSet
- Örneğin, belirli
Kimlik bilgileriyle önbellek kuralı yapılandırma ve oluşturma
Ö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 MyDockerHubCredSet
- Örneğin, belirli
Ö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
- Örneğin, belirli
Ö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
- Örneğin, belirli
Key Vault'a izin atama
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 MyDockerHubCredSet \ -r MyRegistry \ --query 'identity.principalId' \ -o tsv)
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
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.io
için istenen etiketelatest
sahip görüntüyü depodanhello-world
çekmek için.
docker pull myregistry.azurecr.io/hello-world:latest
- Örneğin, belirli bir kayıt defteri oturum açma sunucusu
Kaynakları temizleme
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
- Örneğin, belirli
Ö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
- Örneğin, belirli
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
- Örneğin, belirli
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 MyDockerHubCredSet
- Örneğin, belirli
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.
Azure Container Registry'nize gidin.
Yan menüdeki Hizmetler'in altında Önbellek'i seçin.
Kural Oluştur'u seçin.
Yeni önbellek kuralı için bir pencere görüntülenir.
Kural adını girin.
Açılan menüden Kaynak Kayıt Defteri'ni seçin.
Önbelleğe almak istediğiniz yapıtların Depo Yolunu girin.
Özel bir depoya erişmiyorsanız veya kimliği doğrulanmış bir çekme işlemi gerçekleştirmiyorsanız Kimlik Doğrulamayı atlayabilirsiniz.
Hedef altında, önbelleğe alınmış yapıtları depolamak için Yeni ACR Deposu Ad Alanı'nın adını girin.
Kaydet'i seçin.
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.io
için istenen etiketelatest
sahip görüntüyü depodanhello-world
çekmek için.
docker pull myregistry.azurecr.io/hello-world:latest
- Örneğin, belirli bir kayıt defteri oturum açma sunucusu
Kimlik doğrulaması ile Yapıt önbelleğini yapılandırma
Azure portalında önbellek kuralı oluşturma adımlarını izleyin.
Azure Container Registry'nize gidin.
Yan menüdeki Hizmetler'in altında Önbellek'i seçin.
Kural Oluştur'u seçin.
Yeni önbellek kuralı için bir pencere görüntülenir.
Kural adını girin.
Açılan menüden Kaynak Kayıt Defteri'ni seçin.
Önbelleğe almak istediğiniz yapıtların Depo Yolunu girin.
Depoya kimlik doğrulaması eklemek için Kimlik doğrulama kutusunu işaretleyin.
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.
Kimlik bilgileri hazırsa, açılan menüden kimlik bilgilerini seçin.
Hedef altında, önbelleğe alınmış yapıtları depolamak için Yeni ACR Deposu Ad Alanı'nın adını girin.
Kaydet'i seçin.
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.io
için istenen etiketelatest
sahip görüntüyü depodanhello-world
çekmek için.
docker pull myregistry.azurecr.io/hello-world:latest
- Örneğin, belirli bir kayıt defteri oturum açma sunucusu
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..
Kimlik Bilgileri Kimlik bilgileri> oluştur'a gidin.
Kaynak kayıt defterinizin yeni kimlik bilgileri için Ad girin.
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.
Key Vault'tan Seç seçeneği için Anahtar kasası kullanarak kimlik bilgileri oluşturma hakkında daha fazla bilgi edinin.
Oluştur'u seçin.
Sonraki adımlar
- Kayıt Defteri Önbelleği ile ilgili sorun giderme kılavuzunda ilerlemek için sonraki makaleye geçin.