Aracılığıyla paylaş


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, bir 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 defterleri ile 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ğ kapatma 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 DevOps iş akışında, Docker komutlarını kullanmanıza gerek kalmadan geliştirme kayıt defterinden bir görüntüyü üretim kayıt defterine 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.

Önkoşullar

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

    İzin Açıklama
    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 genelinde 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 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 Seattle, WA'da bulunur ve Batı ABD veri merkezini kullanı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 kayıt defterine sahipti. Geliştirme ekibi bu farklı bölgelere hizmet vermek için iki farklı kayıt defterine görüntü göndermektedir.

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:

  • Tüm Doğu ABD, Batı ABD ve Kanada Orta kümeleri 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 gerekiyor.
  • 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 aşağıdaki avantajlara sahiptir:

  • 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ölgesinde 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 defteriniz için coğrafi çoğaltmayı yapılandırmak için Azure portalında oturum 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. 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ılan kayıt defterindeki her bölge, ayarlandıktan sonra bağımsızdır. Azure Container Registry SLA'ları coğrafi olarak çoğaltılan her bölgeye uygulanır.
  • Coğrafi olarak çoğaltılan bir kayıt defterindeki her gönderme veya çekme görüntüsü işlemi için arka planda Azure Traffic Manager, ağ gecikme süresini korumak için kayıt defterinin bölgedeki en yakın konumuna bir istek 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ılan bir kayıt defterine gönderme güncelleştirmelerine bağlı 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ılan bir kayıt defterinde bölgesel web kancaları ayarlayabilirsiniz.
  • Azure Container Registry, içerik katmanlarını temsil eden bloblara hizmet vermek 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 izin verir. Sorun giderme amacıyla, çoğaltılan verileri korurken isteğe bağlı olarak çoğaltmaya yönlendirmeyi devre dışı bırakabilirsiniz.
  • Sanal ağdaki özel uç noktaları kullanarak kayıt defteriniz için özel bir 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 için 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ştirmeniz 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 giriş 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 iki kayıt defteri birleştirerek Doğu ABD, Orta Kanada ve Batı Avrupa'ya çoğaltma eklemiş. 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'ya 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şlemleriyle ilgili sorunları giderme

Bir görüntüyü coğrafi olarak çoğaltılmış bir kayıt defterine gönderebilen bir 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 yakınlardaki iki ç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 şekli nedeniyle ortaya çıkar. Bu sorun, istemci tarafında DNS önbelleği sağlayan Windows'ta ortaya çıkmaz.

Bu sorun ortaya çıkarsa çözümlerden biri Linux konağındaki dnsmasq gibi bir istemci tarafı DNS önbelleği 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ğaltmada 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ış bir 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 bölge oluşturduğunuzda veya güncelleştirdiğinizde bir --region-endpoint-enabled seçenek (önizleme) yapılandırabilirsiniz. Bir çoğaltma --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 defterimde westus ç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

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

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

Özel Uç Nokta özellikli kayıt defteri için çoğaltma oluşturma

Özel Uç Nokta ile etkinleştirilen birincil kayıt defteri için yeni bir kayıt defteri çoğaltması oluştururken, Kullanıcı Kimliği'nin geçerli Özel Uç Nokta oluşturma izinlerine sahip olduğunu doğrulamanızı öneririz. Aksi takdirde, çoğaltma oluşturulurken işlem sağlama durumunda takılı kalır.

Kayıt defteri çoğaltmasını oluştururken sağlama durumunda takıldıysanız aşağıdaki adımları izleyin:

  • Sağlama durumunda takılan çoğaltmayı el ile silin.
  • Microsoft.Network/privateEndpoints/privateLinkServiceProxies/write Kullanıcı Kimliği için izni ekleyin.
  • Kayıt defteri çoğaltma isteğini yeniden oluşturun.

Bu izin denetimi yalnızca Özel Uç Nokta'nın etkinleştirildiği kayıt defterleri için geçerlidir.

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ış kayıt defteri oluşturma, kapsayıcı oluşturma ve ardından tek docker push bir komutla kapsayıcılar için birden çok bölgesel Web Apps örneğine dağıtma adımlarını izleyin.