Aracılığıyla paylaş


Küme kayıt defterini kullanmaya başlama

Azure Operator Service Manager (AOSM) küme kayıt defteri (CR) ile bulutta yerel ağ işlevleri için dayanıklılığı geliştirme

Belge geçmişi

  • Oluşturma ve İlk Yayımlanma Tarihi: 26 Temmuz 2024
  • HA için güncelleştirildi: 16 Ekim 2024
  • GC için güncelleştirildi: 5 Kasım 2024

Özellik bağımlılıkları

Bu özellik için aşağıdaki en düşük ortam gerekir:

  • En Düşük AOSM ARM API Sürümü: 2023-09-01
  • İlk sürüm, Ağ İşlevi (NF) kubernetes uzantısı için yüksek kullanılabilirlik (HA) yok: 1.0.2711-7
  • NF kubernetes uzantısı için HA ile ilk sürüm: 2.0.2810-144
  • NF kubernetes uzantısı için GC ile ilk sürüm: 2.0.2860-160

Küme kayıt defterine genel bakış

Azure Operatör Hizmet Yöneticisi (AOSM) küme kayıt defteri (CR), Nexus K8s kümesindeki kapsayıcı görüntülerinin yerel bir kopyasını etkinleştirir. Kapsayıcılı ağ işlevi (CNF) küme kayıt defteri etkin olarak yüklendiğinde, kapsayıcı görüntüleri uzak AOSM yapı deposundan alınır ve bu yerel küme kayıt defterine kaydedilir. Küme kayıt defteri, sessize alan bir web kancası kullanarak görüntü isteklerini otomatik olarak durdurur ve yayımcı paketleme değişikliklerini önlemek için yerel kayıt defteri yolunun yerini alır. Küme yazmaç ile kapsayıcı görüntülerine CNF erişimi, uzak yapıt deposuna bağlantı kaybından kurtulmaya devam eder.

Önemli kullanım örnekleri ve avantajları

Bulutta yerel ağ işlevlerinin (CNF), yalnızca AOSM yapı deposu kullanılarak yapılan ilk dağıtım sırasında değil, aynı zamanda ağ işlevini çalışır durumda tutmak için kapsayıcı görüntülerine erişmesi gerekir. Bu senaryolardan bazıları şunlardır:

  • Pod yeniden başlatmaları: Bir pod durdurulup başlatılıyorsa, küme düğümü kayıt defterinden kapsayıcı görüntülerinin çekilmesine neden olabilir.
  • Kubernetes zamanlayıcı işlemleri: Zamanlayıcı profili kurallarına göre düğüm atamalarına pod sırasında, yeni düğümde yerel olarak önbelleğe alınmış kapsayıcı görüntüleri yoksa düğüm kayıt defterinden kapsayıcı görüntülerini çeker.

AOSM küme kayıt defterini kullanmanın avantajları:

  • AOSM yapı deposuna bağlantının kaybolduğu CNF kesintisini önlemek için gerekli yerel görüntüleri sağlar.
  • Her küme düğümü artık yalnızca yerel kayıt defterinden görüntü çektiğinden, AOSM yapı deposundaki görüntü çekme sayısını azaltır.
  • Düzgün yerel kayıt defteri URL'si yolunu değiştirmek için sessize alan bir web kancası kullanarak hatalı biçimlendirilmiş kayıt defteri URL'leriyle ilgili sorunların üstesinden gelir.

Küme kayıt defteri nasıl çalışır?

AOSM küme kayıt defteri, Ağ İşlevi İşleci (NFO) Arc K8s uzantısı kullanılarak etkinleştirilir. Aşağıdaki CLI, bir Nexus K8s kümesinde küme kayıt defterinin nasıl etkinleştirildiğini gösterir.

az k8s-extension create --cluster-name
                        --cluster-type {connectedClusters}
                        --extension-type {Microsoft.Azure.HybridNetwork}
                        --name
                        --resource-group
                        --scope {cluster}
                        --release-namespace {azurehybridnetwork}
                        --release-train {preview, stable}
                        --config Microsoft.CustomLocation.ServiceAccount=azurehybridnetwork-networkfunction-operator
                        [--auto-upgrade {false, true}]
                        [--config global.networkfunctionextension.enableClusterRegistry={false, true}]
                        [--config global.networkfunctionextension.enableLocalRegistry={false, true}]
                        [--config global.networkfunctionextension.enableEarlyLoading={false,true}]
                        [--config global.networkfunctionextension.clusterRegistry.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.highAvailability.enabled={true, false}]
                        [--config global.networkfunctionextension.webhook.autoScaling.enabled={true, false}]
                        [--config global.networkfunctionextension.clusterRegistry.storageClassName=]
                        [--config global.networkfunctionextension.clusterRegistry.storageSize=]
                        [--config global.networkfunctionextension.webhook.pod.mutation.matchConditionExpression=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence=]
                        [--config global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold=]
                        [--version]

Ağ İşlevi Operatörü Arc K8s uzantısında küme kayıt defteri özelliği etkinleştirildiğinde, AOSM yapı deposundan dağıtılan tüm kapsayıcı görüntülerine Nexus K8s kümesinde yerel olarak erişilebilir. Kullanıcı, küme kayıt defteri için kalıcı depolama boyutunu seçebilir.

Not

Kullanıcı herhangi bir giriş sağlamazsa varsayılan kalıcı birim olan 100 GB kullanılır.

Küme kayıt defteri bileşenleri

Küme kayıt defteri özelliği, NFO uzantısına yardımcı olmak için hedef uç kümesine yardımcı podlar dağıtır.

Bileşen mutabakatı

  • Bu ana pod, kümede çalışan Microsoft.Kubernetes kaynak sağlayıcısı (RP), Karma Geçiş ve Arc aracısının yardımıyla K8sBridge tarafından oluşturulan özel kaynak nesnelerinin (CRO' lar) uzlaştırma işlemini gerçekleştirir.

Pod mutating web kancası

  • Bu podlar, mutate API'sinin bir örneğini sunan Kubernetes mutating giriş web kancalarını uygular. Sessiz API iki şey yapar:
    • Yerel kayıt defteri IP'sinin görüntü kayıt defteri yolunu değiştirir ve AOSM yapıt deposunun Yerine Azure kapsayıcı kayıt defteri (ACR) ekler.
    • Kenar kümesinde bir Yapıt CR'sini oluşturur.

Yapıt mutabakatı

  • Bu pod, sessize alan web kancası tarafından oluşturulan yapıt CRO'larını mutabık tutar.

Kayıt Defteri

  • Bu pod, CNF için kapsayıcı görüntülerini depolar ve alır.

Küme kayıt defteri çöp toplama

AOSM küme uzantısı, kapsayıcı görüntülerini düzenli olarak temizlemek için bir arka plan çöp toplama (GC) işi çalıştırır. Bu iş bir zamanlamaya göre çalışır, küme kayıt defteri kullanımının belirtilen eşiğe ulaşıp ulaşmadığını denetler ve öyleyse çöp toplama işlemini başlatır. İş zamanlaması ve eşik son kullanıcı tarafından yapılandırılır, ancak varsayılan olarak iş günde bir kez %0 kullanım eşiğinde çalışır.

Çöp görüntü bildirimlerini temizleme

AOSM, pod sahibi kaynağı ile küme kayıt defterindeki görüntüleri kullanma arasında başvurular tutar. Görüntüleri temizleme işlemi başlatıldığında, herhangi bir podla bağlantılı olmayan ve bunları küme kayıt defterinden kaldırmak için geçici silme işlemi yapan görüntüler tanımlanır. Bu geçici silme türü, küme kayıt defteri depolama alanını hemen boşaltmaz. Gerçek görüntü dosyalarının kaldırılması, aşağıda özetlenen CNCF dağıtım kayıt defteri çöp toplama işlemine bağlıdır.

Not

Pod sahibi ile kapsayıcı görüntüleri arasındaki başvuru, AOSM'nin görüntüleri yanlışlıkla silmemesini sağlar. Örneğin, bir çoğaltma kümesi podu devre dışı kalırsa, AOSM kapsayıcı görüntülerinin başvurularını kaldırmaz. AOSM yalnızca çoğaltma kümesi silindiğinde kapsayıcı görüntülerinin başvurularını geri alır. Aynı ilke, Kubernetes işleri ve daemonset'ler tarafından yönetilen podlar için de geçerlidir.

CNCF çöp toplama dağıtımı

AOSM, CNCF dağıtım kayıt defteri açık kaynak kullanarak küme kayıt defterini ayarlar. Bu nedenle AOSM, Çöp toplama | tarafından sağlanan çöp toplama özelliklerine dayanır CNCF Dağılımı. Genel olarak, kayıt defteri depolama alanı açmak için görüntü dosyalarını silmek için standart 2 aşamalı "işaretleme ve süpürme" işlemini izler.

Not

Bu işlem, küme kayıt defterinin salt okunur modda olmasını gerektirir. Kayıt defteri salt okunur modda olmadığında resimler karşıya yüklenirse, görüntü katmanlarının yanlışlıkla silinmesi ve bozuk bir görüntüye yol açma riski vardır. Kayıt defteri, 1 dakikaya kadar salt okunur modda kilitlenmeyi gerektirir. Sonuç olarak, küme kayıt defteri salt okunur moddayken AOSM diğer NF dağıtımını erteler.

Çöp toplama yapılandırma parametreleri

Aşağıdaki parametreler, çöp toplama işi için zamanlamayı ve eşiği yapılandırıyor.

  • global.networkfunctionextension.clusterRegistry.clusterRegistryGCCadence
  • global.networkfunctionextension.clusterRegistry.clusterRegistryGCThreshold
  • Daha fazla yapılandırma ayrıntıları için lütfen en son Ağ işlevi uzantısı yükleme yönergelerine bakın

Yüksek kullanılabilirlik ve dayanıklılık konuları

AOSM NF uzantısı, önemli özellikleri desteklemek için sessize alan bir web kancası ve uç kayıt defteri kullanır.

  • Görüntü yolunu özelleştirmeye gerek kalmadan helm grafiklerini ekleme.
  • Pod işlemlerini hızlandırmak ve bağlantısız modlu desteği etkinleştirmek için yerel küme kayıt defteri. Bu temel bileşenlerin yüksek oranda kullanılabilir ve dayanıklı olması gerekir.

HA değişikliklerinin özeti

HA ile küme kayıt defteri ve web kancası podları artık en az üç çoğaltma ve en fazla beş çoğaltma içeren bir çoğaltma kümesini destekliyor. Çoğaltma kümesi anahtar yapılandırması aşağıdaki gibidir:

  • Aşamalı dağıtım yükseltme stratejisi kullanılır.
  • PodDisruptionBudgets (PDB), gönüllü kesintiler sırasında kullanılabilirlik için kullanılır.
  • Pod Benzeşimi, podları düğümler arasında eşit bir şekilde yaymak için kullanılır.
  • Hazır olma yoklaması, trafiğe hizmet vermeden önce podların hazır olduğundan emin olmak için kullanılır.
  • AOSM iş yükü podları yalnızca sistem düğümü havuzuna atanır.
  • Podlar CPU ve bellek yükü altında yatay olarak ölçeklendirilir.

Çoğaltmalar

  • Bir uygulamanın birden çok kopyasını veya çoğaltmasını çalıştıran bir küme, ilk yedeklilik düzeyini sağlar. Hem küme kayıt defteri hem de web kancası en az üç çoğaltma ile 'kind:deployment' olarak tanımlanır.

DeploymentStrategy

  • RollingUpdate stratejisi, sıfır kapalı kalma süresi yükseltmesi elde etmeye yardımcı olmak ve uygulamaların aşamalı dağıtımını desteklemek için kullanılır. Varsayılan maxUnavailable yapılandırması, yedeklilik ilkesini karşılamak için yeterli pod oluşturulana kadar aynı anda yalnızca bir pod'un indirilmesine olanak tanır.

Pod KesintiSi Bütçesi

  • İlke kesintisi bütçesi (PDB), podları gönüllü kesintiye karşı korur ve Deployment, ReplicaSet veya StatefulSet nesneleriyle birlikte dağıtılır. AOSM işleç podları için minAvailable parametresi 2 olan bir PDB kullanılır.

Pod benzeşimi önleme

  • Pod benzeşimi, uygulama podlarının kümenizdeki birden çok düğüm arasında dağılımını denetler. HA ile aşağıdaki parametreleri kullanarak AOSM pod benzeşimi önleme:
    • Zamanlama modu, kuralın ne kadar katı bir şekilde uygulanıp uygulanmayılacağını tanımlamak için kullanılır.
      • requiredDuringSchedulingIgnoredDuringExecution(Sabit): Podlar tanımlanan kuralı karşılayan şekilde zamanlanmalıdır. Kuralın gereksinimlerini karşılayan topoloji yoksa pod zamanlanmaz.
      • preferredDuringSchedulingIgnoredDuringExecution(Soft): Bu kural türü podları zamanlamak için bir tercihi ifade eder, ancak katı bir gereksinimi zorlamaz. Tercih ölçütlerini karşılayan topolojiler varsa Kubernetes podu zamanlar. Bu tür topolojiler yoksa, pod yine de tercihi karşılamayan diğer düğümlerde zamanlanabilir.
    • Etiket Seçici, benzinin uygulandığı belirli podları hedeflemek için kullanılır.
    • Topoloji Anahtarı, düğüm gereksinimlerini tanımlamak için kullanılır.
  • Nexus düğüm yerleşimi tasarım gereği bölgeler arasında eşit bir şekilde yayılır, bu nedenle podların düğümler arasında yayılması da bölgesel yedeklilik sağlar.
  • AOSM işleç podları ağırlık 100 ile yumuşak bir benzeşim kullanır ve düğüm konak adlarını temel alan topoloji anahtarı kullanılır.

Depolama

  • AOSM uç kayıt defteri düğümlere yayılmış birden çok çoğaltmaya sahip olduğundan, kalıcı birimin ReadWriteMany (RWX) erişim modunu desteklemesi gerekir. PVC "nexus-shared" birimi Nexus kümelerinde kullanılabilir ve RWX erişim modunu destekler.

Hazırlık Yoklamaları aracılığıyla izleme

  • AOSM, kapsayıcının trafiği kabul etmeye ne zaman hazır olduğunu öğrenmek için http hazırlık yoklamalarını kullanır. Tüm kapsayıcılar hazır olduğunda bir pod hazır olarak kabul edilir. Pod hazır olmadığında hizmet yük dengeleyicilerinden kaldırılır.

Sistem düğümü havuzu

  • Tüm AOSM işleç podları sistem düğümü havuzuna atanır. Bu havuz, yanlış yapılandırılmış veya yönlendirilen uygulama podlarının sistem podlarını etkilemesini engeller.

Yatay ölçeklendirme

  • Kubernetes'te Bir HorizontalPodAutoscaler (HPA), iş yükünü talebi karşılayacak şekilde otomatik olarak ölçeklendirmek amacıyla bir iş yükü kaynağını otomatik olarak güncelleştirir. AOSM işleç podlarında aşağıdaki HPA ilkesi parametreleri yapılandırılmıştır;
    • En az üç çoğaltma.
    • En fazla beş çoğaltma.
    • %80 cpu ve bellek için targetAverageUtilization.

Kaynak sınırları

  • Kaynak sınırları, AOSM podlarının çalıştığı düğümlerde kaynak aşırı yüklemesini önlemek için kullanılır. AOSM, hem CPU hem de bellek tüketimini sınırlamak için iki kaynak parametresi kullanır.
    • Kaynak isteği - Pod için ayrılmış olması gereken en düşük tutar. Bu değer, uygulamanız için normal yük altında kaynak kullanımına ayarlanmalıdır.
    • Kaynak sınırı - Kullanım sonlandırılan sınıra ulaşırsa podların kullanması gereken maksimum miktardır. Tüm AOSM işleç kapsayıcıları uygun istek, CPU ve bellek sınırı ile yapılandırılır.

Bilinen HA Sınırlamaları

  • Sistem aracısı havuzunda tek etkin düğüme sahip Nexus AKS (NAKS) kümeleri yüksek oranda kullanılabilirlik için uygun değildir. Nexus üretim topolojisi, sistem aracısı havuzunda en az üç etkin düğüm kullanmalıdır.
  • nexus-shared depolama sınıfı bir ağ dosya sistemi (NFS) depolama hizmetidir. Bu NFS depolama hizmeti, Bulut Hizmeti Ağı (CSN) başına kullanılabilir. CSN'ye bağlı tüm Nexus Kubernetes kümeleri bu paylaşılan depolama havuzundan kalıcı birim sağlayabilir. Depolama havuzu şu anda Ağ Bulutu (NC) 3.10 itibarıyla en fazla 1 TiB boyutuyla sınırlıdır; burada NC 3.12'nin 16 TiB seçeneği vardır.
  • Pod Benzeşimi yalnızca podların ilk yerleşimi, sonraki pod ölçeklendirmesi ve onarımı ile ilgilenir ve standart K8s zamanlama mantığını izler.

Sık Sorulan Sorular

AOSM küme kayıt defterini daha önce dağıtılan bir CNF uygulamasıyla kullanabilir miyim?

Küme kayıt defteri olmadan zaten dağıtılmış bir CNF uygulaması varsa kapsayıcı görüntüleri otomatik olarak kullanılamaz. Ağ işlevi AOSM ile dağıtılmadan önce küme kayıt defterinin etkinleştirilmesi gerekir.

Dağıtımdan sonra depolama boyutunu değiştirebilir miyim?

Depolama boyutu ilk dağıtımdan sonra değiştirilemez. Birim boyutunu başlangıç boyutunun 3x ile 4 katını yapılandırmanızı öneririz.

Küme deposunda depolanan dosyaları listeleyebilir miyim?

Dosyaları okunabilir bir biçimde listelemek için aşağıdaki komut kullanılabilir:

 kubectl get artifacts -A -o jsonpath='{range .items[*]}{.spec.sourceArtifact}'

Bu komut aşağıdakine benzer bir çıkış üretmelidir:

 ppleltestpublisheras2f88b55037.azurecr.io/nginx:1.0.0