Azure Container Registry için en iyi yöntemler

Bu en iyi yöntemleri izleyerek, kapsayıcı görüntülerini ve diğer yapıtları depolamak ve dağıtmak için Azure'daki özel kayıt defterinizin performansını ve uygun maliyetli kullanımını en üst düzeye çıkarmanıza yardımcı olabilirsiniz.

Kayıt defteri kavramları hakkında arka plan bilgileri için bkz. Kayıt defterleri, depolar ve görüntüler hakkında. Ayrıca kayıt defterinizdeki görüntüleri etiketleme ve sürüm oluşturma stratejileri için kapsayıcı görüntülerini etiketleme ve sürüm oluşturma önerilerine de bakın.

Yakın ağ dağıtımı

Kapsayıcı kayıt defterinizi, kapsayıcıları dağıttığınız Azure bölgesinde oluşturun. Kayıt defterinizin ağ açısından kapsayıcı konaklarınıza yakın bir bölgeye yerleştirilmesi hem gecikmeyi hem de maliyeti düşürmeye yardımcı olabilir.

Yakın ağ dağıtımı, özel kapsayıcı kayıt defteri kullanmanın birincil nedenlerinden biridir. Docker görüntülerinin kademeli dağıtıma imkan tanıyan etkili bir katman yapısı vardır. Bununla birlikte, yeni düğümlerin belirli bir görüntü için gereken tüm katmanları çekmesi gerekir. Bu ilk docker pull hızla büyüyerek birkaç gigabayta ulaşabilir. Dağıtımınıza yakın özel bir kayıt defterinin olması bu ağ gecikmesini en aza indirir. Buna ek olarak, Azure dahil tüm genel bulutlar ağ çıkışı ücretleri uygular. Bir veri merkezinden diğerine görüntü çekmek, gecikmeye ek olarak ağ çıkışı ücretlerine yol açar.

Çok bölgeli dağıtımları coğrafi olarak çoğaltma

Birden çok bölgeye kapsayıcı dağıtıyorsanız Azure Container Registry'nin coğrafi çoğaltma özelliğini kullanın. İster yerel veri merkezlerinden küresel müşterilere hizmet sunuyor olun ister geliştirme takımınız farklı konumlarda çalışıyor olsun, kayıt defterinizi coğrafi olarak çoğaltarak kayıt defteri yönetimini basitleştirebilir ve gecikmeyi en aza indirebilirsiniz. Ayrıca, görüntülerin gönderilmesi gibi belirli çoğaltmalardaki olayları size bildirmek için bölgesel web kancaları yapılandırabilirsiniz.

Coğrafi çoğaltma Premium kayıt defterleriyle kullanılabilir. Coğrafi çoğaltma özelliğini kullanmayı öğrenmek için Azure Container Registry’de coğrafi çoğaltma başlıklı üç bölümlü öğreticiye bakın.

Çekme performansını en üst düzeye çıkarma

Görüntüleri dağıtımlarınıza yaklaştırmaya ek olarak, görüntülerinizin özellikleri çekme performansını etkileyebilir.

  • Görüntü boyutu - Gereksiz katmanları kaldırarak veya katmanların boyutunu küçülterek görüntülerinizin boyutlarını en aza indirin. Görüntü boyutunu küçültmenin bir yolu, yalnızca gerekli çalışma zamanı bileşenlerini dahil etmek için çok aşamalı Docker derleme yaklaşımını kullanmaktır.

    Ayrıca görüntünüzün daha hafif bir temel işletim sistemi görüntüsü içerip içeremeyeceğini de denetleyin. Belirli temel görüntüleri önbelleğe alan Azure Container Instances gibi bir dağıtım ortamı kullanıyorsanız, önbelleğe alınan görüntülerden biri için görüntü katmanını değiştirip değiştiremeyeceğinizi denetleyin.

  • Katman sayısı - Kullanılan katman sayısını dengeleyin. Çok az sayıdanız varsa, konakta katman yeniden kullanımı ve önbelleğe alma avantajlarından yararlanamazsınız. Çok fazla ve dağıtım ortamınız çekme ve açma işlemlerine daha fazla zaman harcar. Beş ile 10 katman en uygun katmandır.

Ayrıca performans gereksinimlerinizi karşılayan bir Azure Container Registry hizmet katmanı seçin. Premium katmanı, yüksek hacimli dağıtımlarınız olduğunda en yüksek bant genişliğini ve en yüksek eşzamanlı okuma ve yazma işlemlerini sağlar.

Depo ad alanları

Depo ad alanlarını kullanarak, tek bir kayıt defterini kuruluşunuzdaki birden çok grup arasında paylaşmaya izin vekleyebilirsiniz. Kayıt defterleri farklı dağıtımlarla ve takımlarla paylaşılabilir. İç içe ad alanlarını destekleyen Azure Container Registry, grup yalıtımı imkanı sunar. Ancak, kayıt defteri tüm depoları hiyerarşi olarak değil bağımsız olarak yönetir.

Örneğin, aşağıdaki kapsayıcı görüntüsü etiketlerini göz önünde bulundurun. Gibi aspnetcoreşirket genelinde kullanılan görüntüler kök ad alanına yerleştirilirken, Products ve Marketing gruplarının sahip olduğu kapsayıcı görüntüleri kendi ad alanlarını kullanır.

  • contoso.azurecr.io/aspnetcore:2.0
  • contoso.azurecr.io/products/widget/web:1
  • contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
  • contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Ayrılmış kaynak grubu

Kapsayıcı kayıt defterleri birden çok kapsayıcı ana bilgisayarı arasında kullanılan kaynaklar olduğundan, kayıt defteri kendi kaynak grubunda bulunmalıdır.

Azure Container Instances gibi belirli bir konak türüyle denemeler yapsanız da, işiniz bittiğinde kapsayıcı örneğini silmek isteyebilirsiniz. Bununla birlikte, Azure Container Registry’ye gönderdiğiniz görüntü koleksiyonunu korumak da isteyebilirsiniz. Kayıt defterinizi kendi kaynak grubuna yerleştirerek, kapsayıcı örneğinin kaynak grubunu silerken yanlışlıkla kayıt defterindeki görüntü koleksiyonunu da silme riskini en aza indirirsiniz.

Kimlik doğrulaması ve yetkilendirme

Bir Azure kapsayıcı kayıt defteri ile kimlik doğrulama için iki ana senaryo vardır: bireysel kimlik doğrulama ve hizmet (veya "gözetimsiz") kimlik doğrulaması. Aşağıdaki tabloda, bu senaryolara kısa bir genel bakış ve her biri için önerilen kimlik doğrulama yöntemi sağlanmıştır.

Tür Örnek senaryo Önerilen metot
Bireysel kimlik Geliştirme makinesinden görüntü çeken veya gönderen bir geliştirici. az acr login
Gözetimsiz kimlik/hizmet kimliği Kullanıcıyla doğrudan ilgili olmayan derleme ve dağıtım işlem hatları. Hizmet sorumlusu

Bunlar ve diğer Azure Container Registry kimlik doğrulama senaryoları hakkında ayrıntılı bilgi için bkz. Azure kapsayıcı kayıt defteriyle kimlik doğrulama.

Azure Container Registry, görevleri ve ayrıcalıkları farklı kimliklere dağıtmak için kuruluşunuzdaki güvenlik uygulamalarını destekler. Rol tabanlı erişim denetimini kullanarak farklı kullanıcılara, hizmet sorumlularına veya farklı kayıt defteri işlemleri gerçekleştiren diğer kimliklere uygun izinleri atayın. Örneğin, derleme işlem hattında kullanılan bir hizmet sorumlusuna anında iletme izinleri atayın ve dağıtım için kullanılan farklı bir kimliğe çekme izinleri atayın. Belirli depolara ayrıntılı ve zaman sınırlı erişim için belirteçler oluşturun.

Kayıt defteri boyutunu yönetme

Her kapsayıcı kayıt defteri hizmet katmanının depolama kısıtlamaları tipik bir senaryoyla uyumlu hale getirmek için tasarlanmıştır: Başlangıç için temel, çoğu üretim uygulaması için Standart ve hiper ölçekli performans ve coğrafi çoğaltma için Premium. Kayıt defterinizin kullanım ömrü boyunca kullanılmayan içerikleri düzenli olarak silerek boyutunu yönetmeniz gerekir.

Geçerli depolama tüketimini ve kayıt defterinizdeki diğer kaynakları görüntülemek için az acr show-usage Azure CLI komutunu kullanın:

az acr show-usage --resource-group myResourceGroup --name myregistry --output table

Örnek çıktı:

NAME                        LIMIT         CURRENT VALUE    UNIT
--------------------------  ------------  ---------------  ------
Size                        536870912000  215629144        Bytes
Webhooks                    500           1                Count
Geo-replications            -1            3                Count
IPRules                     100           1                Count
VNetRules                   100           0                Count
PrivateEndpointConnections  10            0                Count

Geçerli depolama kullanımını Azure portal kayıt defterinize genel bakış bölümünde de bulabilirsiniz:

Azure portalındaki kayıt defteri kullanım bilgileri

Not

Coğrafi olarak çoğaltılan bir kayıt defterinde, ana bölge için depolama kullanımı gösterilir. Tüketilen toplam kayıt defteri depolama alanı için çoğaltma sayısıyla çarpın.

Görüntü verilerini silme

Azure Container Registry, kapsayıcı kayıt defterinizden görüntü verilerini silmek için çeşitli yöntemleri destekler. Görüntüleri etikete veya bildirim özetlerine göre silebilir ya da deponun tamamını silebilirsiniz.

Kayıt defterinizden etiketlenmemiş (bazen "sarkık" veya "yalnız bırakılmış" olarak da adlandırılır) görüntü verilerini silmeyle ilgili ayrıntılar için bkz. Azure Container Registry'da kapsayıcı görüntülerini silme. Etiketlenmemiş bildirimler için bir bekletme ilkesi de ayarlayabilirsiniz.

Sonraki adımlar

Azure Container Registry, farklı özellikler sağlayan çeşitli katmanlarda (SKU'lar olarak da adlandırılır) kullanılabilir. Kullanılabilir hizmet katmanlarıyla ilgili ayrıntılar için bkz. Azure Container Registry hizmet katmanları.

Kapsayıcı kayıt defterlerinizin güvenlik duruşunu iyileştirmeye yönelik öneriler için bkz. Azure Container Registry için Azure Güvenlik Temeli.