Azure Container Registry'de coğrafi çoğaltma

Yerel bir iletişim durumu veya sık erişimli yedekleme isteyen şirketler, birden çok Azure bölgesinden hizmet çalıştırmayı seçer. En iyi yöntem olarak görüntülerin çalıştığı her bölgeye bir kapsayıcı kayıt defteri yerleştirmek, hızlı ve güvenilir görüntü katmanı aktarımları sağlayan ağa yakın işlemlere olanak tanır. Coğrafi çoğaltma, azure kapsayıcı kayıt defterinin tek bir kayıt defteri olarak çalışmasını sağlar ve birden çok bölgeye çok birincil bölgesel kayıt defterleriyle hizmet verir.

Coğrafi olarak çoğaltılmış bir kayıt defteri aşağıdaki avantajları sağlar:

  • Tek kayıt defteri, görüntü ve etiket adları birden çok bölgede kullanılabilir
  • Ağa yakın kayıt defteri erişimiyle bölgesel dağıtımların performansını ve güvenilirliğini artırma
  • Kapsayıcı konağınızla aynı veya yakın bölgedeki yerel, çoğaltılmış bir kayıt defterinden görüntü katmanlarını çekerek veri aktarımı maliyetlerini azaltın
  • Birden çok bölgede kayıt defterinin tek noktadan yönetimi
  • Bölgesel bir kesinti oluşursa kayıt defteri dayanıklılığı

Not

  • Kapsayıcı görüntülerinin kopyalarını birden fazla Azure kapsayıcı kayıt defterinde tutmanız gerekiyorsa, Azure Container Registry görüntü içeri aktarmayı da destekler. Örneğin, bir DevOps iş akışında, Docker komutlarını kullanmanıza gerek kalmadan bir geliştirme kayıt defterinden üretim kayıt defterine görüntü aktarabilirsiniz.
  • Kayıt defterini coğrafi olarak çoğaltmak yerine farklı bir Azure bölgesine taşımak istiyorsanız bkz. Kapsayıcı kayıt defterini el ile başka bir bölgeye taşıma.

Ön koşullar

  • Kullanıcı, çoğaltmaları oluşturmak/silmek için aşağıdaki izinlere (kayıt defteri düzeyinde) ihtiyaç duyar:

    İzin Description
    Microsoft.ContainerRegistry/kayıt defterleri/yazma Çoğaltma oluşturma
    Microsoft.ContainerRegistry/kayıt defterleri/çoğaltmalar/yazma Çoğaltmayı silme

Örnek kullanım örneği

Contoso, ABD, Kanada ve Avrupa'da bulunan bir genel iletişim durumu web sitesi çalıştırır. Contoso, bu pazarlara yerel ve ağa yakın içerikle hizmet vermek için Batı ABD, Doğu ABD, Orta Kanada ve Batı Avrupa'da Azure Kubernetes Service (AKS) kümeleri çalıştırır. Docker görüntüsü olarak dağıtılan web sitesi uygulaması, tüm bölgelerde aynı kodu ve görüntüyü kullanır. Bu bölgede yerel olan içerik, her bölgede benzersiz olarak sağlanan bir veritabanından alınır. Her bölgesel dağıtımın, yerel veritabanı gibi kaynaklar için benzersiz yapılandırması vardır.

Geliştirme ekibi, Batı ABD veri merkezini kullanarak Seattle WA'da yer almaktadır.

Birden çok kayıt defterine gönderme
Birden çok kayıt defterine gönderme

Contoso, coğrafi çoğaltma özelliklerini kullanmadan önce Batı ABD'de ABD tabanlı bir kayıt defterine ve Batı Avrupa'da ek bir kayıt defterine sahipti. Geliştirme ekibi bu farklı bölgelere hizmet vermek için görüntüleri iki farklı kayıt defterine göndererek.

docker push contoso.azurecr.io/public/products/web:1.2
docker push contosowesteu.azurecr.io/public/products/web:1.2

Birden çok kayıt defterinden çekme
Birden çok kayıt defterinden çekme

Birden çok kayıt defterinin tipik zorlukları şunlardır:

  • Doğu ABD, Batı ABD ve Orta Kanada kümelerinin tümü Batı ABD kayıt defterinden çekerek bu uzak kapsayıcıların her biri Batı ABD veri merkezlerinden görüntü çektiği için çıkış ücretlerine neden olur.
  • Geliştirme ekibinin Batı ABD ve Batı Avrupa kayıt defterlerine görüntü göndermesi gerekir.
  • Geliştirme ekibinin her bölgesel dağıtımı yerel kayıt defterine başvuran görüntü adlarıyla yapılandırması ve bakımını yapması gerekir.
  • Kayıt defteri erişimi her bölge için yapılandırılmalıdır.

Coğrafi çoğaltmanın avantajları

Coğrafi olarak çoğaltılmış kayıt defterinden çekme

Azure Container Registry'nin coğrafi çoğaltma özelliği kullanılarak şu avantajlar elde edilir:

  • Tüm bölgelerde tek bir kayıt defterini yönetme: contoso.azurecr.io
  • Tüm bölgeler aynı görüntü URL'sini kullandığından görüntü dağıtımlarının tek bir yapılandırmasını yönetin: contoso.azurecr.io/public/products/web:1.2
  • ACR coğrafi çoğaltmayı otomatik olarak yönetirken tek bir kayıt defterine gönderme. ACR yalnızca benzersiz katmanları çoğaltarak bölgeler arasında veri aktarımını azaltır.
  • Belirli çoğaltmalardaki olayları size bildirmek için bölgesel web kancalarını yapılandırın.
  • Bölgesel kesintilere dayanıklı, yüksek oranda kullanılabilir bir kayıt defteri sağlayın.

Azure Container Registry, bir Azure bölgesi içinde dayanıklı ve yüksek kullanılabilirliğe sahip bir Azure kapsayıcı kayıt defteri oluşturmak için kullanılabilirlik alanlarını da destekler. Bir bölge içinde yedeklilik için kullanılabilirlik alanlarının ve birden çok bölgede coğrafi çoğaltmanın birleşimi, bir kayıt defterinin hem güvenilirliğini hem de performansını artırır.

Coğrafi çoğaltmayı yapılandırma

Coğrafi çoğaltmayı yapılandırmak, haritadaki bölgelere tıklamak kadar kolaydır. Ayrıca Azure CLI'daki az acr replication komutları dahil olmak üzere araçları kullanarak coğrafi çoğaltmayı yönetebilir veya Azure Resource Manager şablonuyla coğrafi çoğaltma için etkinleştirilmiş bir kayıt defteri dağıtabilirsiniz.

Coğrafi çoğaltma, Premium kayıt defterlerinin bir özelliğidir. Kayıt defteriniz henüz Premium değilse , Azure portalında Temel ve Standart'tan Premium'a geçiş yapabilirsiniz:

Azure portalında hizmet katmanları arasında geçiş yapma

Premium kayıt defterinizde coğrafi çoğaltmayı yapılandırmak için adresinden Azure portalında https://portal.azure.comoturum açın.

Azure Container Registry'nize gidin ve Çoğaltmalar'ı seçin:

Azure portalı kapsayıcı kayıt defteri kullanıcı arabirimindeki Çoğaltmalar

Tüm geçerli Azure Bölgelerini gösteren bir harita görüntülenir:

Azure portalındaki bölge haritası

  • Mavi altıgenler geçerli çoğaltmaları temsil eder
  • Yeşil altıgenler olası çoğaltma bölgelerini temsil eder
  • Gri altıgenler, çoğaltma için henüz kullanılamayan Azure bölgelerini temsil eder

Çoğaltmayı yapılandırmak için yeşil bir altıgen seçin ve ardından Oluştur'u seçin:

Azure portalında çoğaltma oluşturmaya yönelik kullanıcı arabirimi

Ek çoğaltmaları yapılandırmak için diğer bölgeler için yeşil altıgenleri seçin ve oluştur'a tıklayın.

ACR, görüntüleri yapılandırılmış çoğaltmalar arasında eşitlemeye başlar. İşlem tamamlandıktan sonra portal Hazır'ı yansıtır. Portaldaki çoğaltma durumu otomatik olarak güncelleştirilmez. Güncelleştirilmiş durumu görmek için yenile düğmesini kullanın.

Coğrafi olarak çoğaltılmış kayıt defteri kullanma konusunda dikkat edilmesi gerekenler

  • Coğrafi olarak çoğaltılmış kayıt defterindeki her bölge ayarlandıktan sonra bağımsız olur. Azure Container Registry SLA'ları coğrafi olarak çoğaltılan her bölgeye uygulanır.
  • Coğrafi olarak çoğaltılmış bir kayıt defterinden görüntü gönderdiğinizde veya çektiğinizde, arka planda Azure Traffic Manager isteği ağ gecikme süresi açısından size en yakın bölgede bulunan kayıt defterine gönderir.
  • Bir görüntü veya etiket güncelleştirmesini en yakın bölgeye gönderdikten sonra Azure Container Registry'nin bildirimleri ve katmanları seçtiğiniz kalan bölgelere çoğaltması biraz zaman alır. Daha büyük resimlerin çoğaltılması küçük resimlerden daha uzun sürer. Görüntüler ve etiketler çoğaltma bölgeleri arasında nihai tutarlılık modeliyle eşitlenir.
  • Coğrafi olarak çoğaltılmış bir kayıt defterine gönderme güncelleştirmelerine bağımlı iş akışlarını yönetmek için web kancalarını gönderme olaylarına yanıt verecek şekilde yapılandırmanızı öneririz. Coğrafi olarak çoğaltılan bölgelerde tamamlanan gönderme olaylarını izlemek için coğrafi olarak çoğaltılmış bir kayıt defteri içinde bölgesel web kancaları ayarlayabilirsiniz.
  • Azure Container Registry, içerik katmanlarını temsil eden blobları sunmak için veri uç noktalarını kullanır. Kayıt defterinizin coğrafi olarak çoğaltılmış bölgelerinin her birinde kayıt defteriniz için ayrılmış veri uç noktalarını etkinleştirebilirsiniz. Bu uç noktalar, sıkı kapsamlı güvenlik duvarı erişim kurallarının yapılandırılmasına olanak tanır. Sorun giderme amacıyla, çoğaltılan verileri korurken isteğe bağlı olarak çoğaltmaya yönlendirmeyi devre dışı bırakabilirsiniz .
  • Bir sanal ağdaki özel uç noktaları kullanarak kayıt defteriniz için özel bağlantı yapılandırıyorsanız, coğrafi olarak çoğaltılan bölgelerin her birinde ayrılmış veri uç noktaları varsayılan olarak etkinleştirilir.

Yüksek kullanılabilirlik konusunda dikkat edilmesi gerekenler

  • Yüksek kullanılabilirlik ve dayanıklılık için, bölge yedekliliğini etkinleştirmeyi destekleyen bir bölgede kayıt defteri oluşturmanızı öneririz. Her çoğaltma bölgesinde bölge yedekliliğini etkinleştirme de önerilir.
  • Kayıt defterinin ana bölgesinde (oluşturulduğu bölge) veya çoğaltma bölgelerinden birinde bir kesinti oluşursa, kapsayıcı görüntülerini gönderme veya çekme gibi veri düzlemi işlemleri için coğrafi olarak çoğaltılmış bir kayıt defteri kullanılabilir durumda kalır.
  • Kayıt defterinin ana bölgesi kullanılamaz duruma gelirse, ağ kurallarını yapılandırma, kullanılabilirlik alanlarını etkinleştirme ve çoğaltmaları yönetme gibi kayıt defteri yönetim işlemlerini gerçekleştiremeyebilirsiniz.
  • Azure anahtar kasasında depolanan müşteri tarafından yönetilen anahtarla şifrelenmiş coğrafi olarak çoğaltılmış bir kayıt defterinin yüksek kullanılabilirliğini planlamak için anahtar kasası yük devretme ve yedeklilik yönergelerini gözden geçirin.

Bir çoğaltmayı sil

Kayıt defteriniz için bir çoğaltma yapılandırdıktan sonra, artık gerekli değilse istediğiniz zaman silebilirsiniz. Azure portalını veya Azure CLI'daki az acr replication delete komutu gibi diğer araçları kullanarak çoğaltmayı silin.

Azure portalında bir çoğaltmayı silmek için:

  1. Azure Container Registry'nize gidin ve Çoğaltmalar'ı seçin.
  2. Çoğaltmanın adını seçin ve Sil'i seçin. Çoğaltmayı silmek istediğinizi onaylayın.

Azure CLI kullanarak Doğu ABD bölgesindeki kayıt defterimin bir çoğaltmasını silmek için:

az acr replication delete --name eastus --registry myregistry

Coğrafi çoğaltma fiyatlandırması

Coğrafi çoğaltma, Azure Container Registry'nin Premium hizmet katmanının bir özelliğidir. Bir kayıt defterini istediğiniz bölgelere çoğalttığınızda, her bölge için Premium kayıt defteri ücretlerine tabi olursunuz.

Önceki örnekte Contoso, Doğu ABD, Orta Kanada ve Batı Avrupa'ya çoğaltmalar ekleyerek iki kayıt defteri birleştirdi. Contoso ek yapılandırma veya yönetim olmadan ayda dört kez Premium ödeme yapar. Her bölge artık görüntülerini yerel olarak çekerek Batı ABD'den Kanada ve Doğu ABD'ye ağ çıkışı ücretleri olmadan performansı ve güvenilirliği artırıyor.

Coğrafi olarak çoğaltılan kayıt defterleriyle gönderme işlemlerinin sorunlarını giderme

Bir görüntüyü coğrafi olarak çoğaltılmış bir kayıt defterine gönderebilen docker istemcisi, tüm görüntü katmanlarını ve bildirimini tek bir çoğaltılmış bölgeye göndermeyebilir. Bunun nedeni Azure Traffic Manager'ın kayıt defteri isteklerini ağa en yakın çoğaltılmış kayıt defterine yönlendirmesi olabilir. Kayıt defterinin iki yakın çoğaltma bölgesi varsa, görüntü katmanları ve bildirim iki siteye dağıtılabilir ve bildirim doğrulandığında gönderme işlemi başarısız olur. Bu sorun, bazı Linux konaklarında kayıt defterinin DNS adının çözümlenme şeklinden kaynaklanır. Bu sorun, istemci tarafı DNS önbelleği sağlayan Windows'ta oluşmaz.

Bu sorun oluşursa, çözümlerden biri Linux konağı gibi bir istemci tarafı DNS önbelleği dnsmasq uygulamaktır. Bu, kayıt defterinin adının tutarlı bir şekilde çözümlendiğinden emin olunmasını sağlar. Kayıt defterine göndermek için Azure'da Linux VM kullanıyorsanız Bkz. Azure'da Linux sanal makineleri için DNS Ad Çözümleme seçenekleri.

Görüntüleri gönderirken DNS çözümlemesini en yakın çoğaltmaya en iyi duruma getirmek için, gönderme işlemlerinin kaynağıyla aynı Azure bölgelerinde veya Azure dışında çalışırken en yakın bölgede coğrafi olarak çoğaltılmış bir kayıt defteri yapılandırın.

Çoğaltmaya yönlendirmeyi geçici olarak devre dışı bırakma

Coğrafi olarak çoğaltılmış kayıt defteriyle ilgili işlemlerin sorunlarını gidermek için Traffic Manager'ın bir veya daha fazla çoğaltmaya yönlendirmesini geçici olarak devre dışı bırakmak isteyebilirsiniz. Azure CLI sürüm 2.8'den başlayarak, çoğaltılmış bir --region-endpoint-enabled bölge oluştururken veya güncelleştirirken bir seçenek (önizleme) yapılandırabilirsiniz. Bir çoğaltmanın --region-endpoint-enabled seçeneğini olarak falseayarladığınızda Traffic Manager artık docker gönderme veya çekme isteklerini bu bölgeye yönlendirmez. Varsayılan olarak, tüm çoğaltmalara yönlendirme etkinleştirilir ve yönlendirmenin etkin veya devre dışı olması fark etmeksizin tüm çoğaltmalar arasında veri eşitleme gerçekleşir.

Var olan bir çoğaltmaya yönlendirmeyi devre dışı bırakmak için, önce az acr replication list komutunu çalıştırarak kayıt defterindeki çoğaltmaları listeleyin. Ardından az acr replication update komutunu çalıştırın ve belirli bir çoğaltma için ayarlayın --region-endpoint-enabled false . Örneğin, kayıt defterimdewestus çoğaltması ayarını yapılandırmak için:

# Show names of existing replications
az acr replication list --registry --output table

# Disable routing to replication
az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled false

Çoğaltmaya yönlendirmeyi geri yüklemek için:

az acr replication update --name westus \
  --registry myregistry --resource-group MyResourceGroup \
  --region-endpoint-enabled true

Sonraki adımlar

Azure Container Registry'de coğrafi çoğaltma adlı üç bölümlü öğretici serisine göz atın. Coğrafi olarak çoğaltılmış bir kayıt defteri oluşturma, kapsayıcı oluşturma ve ardından bunu tek docker push bir komutla birden çok bölgesel Kapsayıcılar için Web Apps örneğine dağıtma adımlarını izleyin.