Aracılığıyla paylaş


Azure Kubernetes Service (AKS) kümeleri için yükseltme seçenekleri

Bu makalede AKS kümeleri için farklı yükseltme seçenekleri yer alır. Temel bir Kubernetes sürüm yükseltmesi gerçekleştirmek için bkz . AKS kümesini yükseltme.

Birden çok düğüm havuzu veya Windows Server düğümü kullanan AKS kümeleri için bkz . AKS'de düğüm havuzunu yükseltme. Kubernetes küme yükseltmesi yapmadan belirli bir düğüm havuzunu yükseltmek için Belirli bir düğüm havuzunu yükseltme'ye bakın.

El ile yükseltmeler gerçekleştirme

Kümenizin yeni bir Kubernetes sürümüne ne zaman yükseltebileceğini denetlemek için el ile yükseltmeler gerçekleştirebilirsiniz. El ile yükseltmeler, üretim kümenizi yükseltmeden önce yeni bir Kubernetes sürümünü test etmek istediğinizde kullanışlıdır. Ayrıca, kümenizi kullanılabilir en son sürüm olmayan belirli bir Kubernetes sürümüne yükseltmek için el ile yükseltmeleri de kullanabilirsiniz.

El ile yükseltme gerçekleştirmek için aşağıdaki makalelere bakın:

Otomatik yükseltmeleri yapılandırma

Kümenizi otomatik olarak kullanılabilir en son Kubernetes sürümüne yükseltmek için otomatik yükseltmeleri yapılandırabilirsiniz. Otomatik yükseltmeler, kümenizin her zaman en son Kubernetes sürümünü çalıştırdığından emin olmak istediğinizde kullanışlıdır. Kümenizin her zaman desteklenen bir Kubernetes sürümünü çalıştırdığından emin olmak için otomatik yükseltmeleri de kullanabilirsiniz.

Otomatik yükseltmeleri yapılandırmak için aşağıdaki makalelere bakın:

Birden çok kullanılabilirlik alanına yayılan düğüm havuzları için dikkat edilmesi gereken özel noktalar

AKS, düğüm gruplarında en iyi efor bölgesi dengelemesini kullanır. Yükseltme dalgalanması sırasında, Sanal Makine Ölçek Kümeleri'daki aşırı gerilim düğümlerinin bölgeleri önceden bilinmez ve bu da yükseltme sırasında geçici olarak dengesiz bir bölge yapılandırmasına neden olabilir. Ancak, yükseltme tamamlandıktan sonra AKS, orijinal bölge dengesini koruyarak artış düğümlerini siler. Yükseltmeler sırasında bölgelerinizin dengeli kalmasını istiyorsanız, artışı üç düğümün katı olacak şekilde artırabilirsiniz ve Sanal Makine Ölçek Kümeleri, elinizden gelen en iyi çaba ile düğümlerinizi kullanılabilirlik alanları arasında dengeler. Dengeyi koruyarak ölçeklemeye çalışan en iyi çaba bölgesi dengesinde, ölçek kümesi içe ve dışa doğru ölçeklemeye çalışır. Ancak, bir nedenden dolayı bu mümkün değilse (örneğin, bir bölge kapanırsa ve ölçek kümesi o bölgede yeni bir VM oluşturamazsa), ölçek kümesi, başarıyla ölçeği büyütmek veya küçültmek için geçici dengesizliğe izin verir.

Azure yerel olarak yedekli depolama (LRS) Diskleri tarafından yedeklenen kalıcı birim talepleri (PVC) belirli bir bölgeye bağlıdır ve aşırı gerilim düğümü PVC'nin bölgesiyle eşleşmiyorsa hemen kurtarılamaz. Bölgeler eşleşmiyorsa ve yükseltme işlemi düğümleri boşaltmaya devam ederken PV'ler bir bölgeye bağlı kalırsa, bu durum uygulamanızda kapalı kalma süresine yol açabilir. Bu durumu işlemek ve yüksek kullanılabilirliği korumak için uygulamanızda Bir Pod Kesintisi Bütçesi yapılandırarak Kubernetes'in boşaltma işlemi sırasında kullanılabilirlik gereksinimlerinize uymasını sağlayın.

Tahliye edilemez düğüm davranışı için iyileştirme

Drenaj hataları için yükseltme işlemi davranışını yapılandırabilirsiniz. Varsayılan yükseltme davranışı, Schedule, yükseltme işleminin başarısız olmasına neden olan bir düğüm boşaltma hatasından oluşur ve bu da boşaltılmamış düğümleri zamanlanabilir durumda bırakır. Alternatif olarak, boşaltılamayan düğümleri karantinaya alınmış duruma getirip, onları Cordon ve kubernetes.azure.com/upgrade-status:Quarantined etiketleriyle işaretleyen ve kalan düğümleri yükseltmeye devam eden davranışı seçebilirsiniz. Bu davranış, tüm düğümlerin yükseltilmesini veya karantinaya alınmasını sağlar. Bu yaklaşım, boşaltma hatalarını gidermenize ve karantinaya alınan düğümleri düzgün bir şekilde yönetmenize olanak tanır.

Yeni kordon davranışını ayarlama

Yeni kordon davranışını ayarlamak için 2.74 veya sonraki bir sürümü kullanmanız Azure CLI gerekir.

  1. [Cordon][az-aks-nodepool-update] komutunu kullanarak düğüm havuzunun boşaltılamayan düğüm davranışını az aks nodepool update güncelleyin.

    az aks nodepool update --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --resource-group $RESOURCE_GROUP --max-surge 1 --undrainable-node-behavior Cordon
    

    Aşağıdaki örnek çıktı, güncellenmiş boşaltılamaz düğüm davranışını gösterir.

    "upgradeSettings": {
        "drainTimeoutInMinutes": null,
        "maxSurge": "1",
        "nodeSoakDurationInMinutes": null,
        "undrainableNodeBehavior": "Cordon"
      }
    
  2. Engellenen düğümlerde etiketi, yükseltmede boşaltma düğümü hatası olduğunda kubectl get komutunu kullanarak doğrulayın.

    kubectl get nodes --show-labels=true
    

    Engellenmiş düğümler podlar için zamanlanmamıştır ve "kubernetes.azure.com/upgrade-status: Quarantined" etiketiyle işaretlenmiştir. Engellenmiş olarak bırakılabilecek düğüm sayısı, üst sınır değeri olan Max-Surge'den fazla olamaz.

Çözülemeyen düğümleri giderme

  1. Önce drenaja neden olan temel sorunu çözün. Aşağıdaki örnek sorumlu PDB'yi kaldırır:

    kubectl delete pdb nginx-pdb
    poddisruptionbudget.policy "nginx-pdb" deleted.
    
  2. Sorunun artık çözüldüğünden eminseniz, "kubernetes.azure.com/upgrade-status: Quarantined" komutunu kullanarak boşaltılamayan düğümlere yerleştirilen kubectl label etiketini kaldırabilirsiniz.

    kubectl label nodes <node-name> <label-key>-
    

    Herhangi bir sonraki PUT işlemi, önce Failed Provisioning Status üzerinde Success ile uzlaştırmayı deneyecektir. Karantinaya alınan düğümler, ileride yapılan yerleştirme veya uzlaşma işlemleri için dikkate alınmayacak. Engellenen düğümlerin dikkate alınabilmesi için, daha önce belirtildiği gibi etiketleri açıkça kaldırmanız gerekir.

  3. Engellenen düğümü [az aks nodepool delete-machines][az-aks-nodepool-delete-machines] komutunu kullanarak da silebilirsiniz. Bu komut, eski sürümlerde geride bırakılan düğümleri kaldırarak düğüm havuzu ayak izini azaltmayı amaçlıyorsanız kullanışlıdır.

    az aks nodepool delete-machines --cluster-name $CLUSTER_NAME --machine-names aks-$NODE_POOL_NAME-test123-vmss000000 --name $NODE_POOL_NAME --resource-group $RESOURCE_GROUP
    
  4. Bu adımı tamamladıktan sonra, burada özetlenen isteğe bağlı alanlar olmadan herhangi bir güncelleştirme işlemi gerçekleştirerek küme durumunu mutabık kılabilirsiniz. Alternatif olarak, düğüm havuzunu yükseltilen düğüm sayısıyla aynı sayıda düğüme ölçeklendirebilirsiniz. Bu eylem, düğüm havuzunun hedeflenen özgün boyutuna ulaştığından emin olur. AKS, engellenen düğümlerin kaldırılmasına öncelik sağlar. Bu komut, küme provisioning durumunu da Succeeded olarak geri yükler. Verilen örnekte, 2 yükseltilen düğümlerin toplam sayısıdır.

    # Update the cluster to restore the provisioning status
    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
    # Scale the node pool to restore the original size
    az aks nodepool scale --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --node-count 2 
    

Performansı geliştirmek ve kesintileri en aza indirmek için yükseltmeleri iyileştirme

Planlı Bakım Penceresi, Maksimum Dalgalanma, Pod Kesinti Bütçesi, düğüm boşaltma zaman aşımı ve düğüm bekletme süresi birleşimi, bakım penceresinin sonunda düğüm yükseltmelerinin başarıyla tamamlanma olasılığını önemli ölçüde artırırken kesintileri de en aza indirir.

  • Planlı Bakım Penceresi , hizmet ekiplerinin iş yükü etkisini en aza indirmek için önceden tanımlanmış bir pencere (genellikle düşük trafikli bir dönem) sırasında otomatik yükseltme zamanlamasını sağlar. En az dört saatlik bir pencere süresi öneririz.
  • Düğüm havuzundaki Maksimum Artış, yükseltme işlemi sırasında ek kota istemeye olanak tanır ve aynı anda yükseltme için seçilen düğüm sayısını sınırlar. Daha yüksek bir maksimum artış, daha hızlı bir yükseltme işlemiyle sonuçlanır. Tüm düğümleri aynı anda yükselterek çalışan uygulamalarda kesintilere neden olabileceği için %100 olarak ayarlanması önerilmez. Üretim düğümü havuzları için maksimum %33 artış kotası öneririz.
  • Düğüm havuzunda En Fazla Kullanılamayan, yükseltmelerin mevcut düğümleri kordonlayarak ve herhangi bir aşırı gerilim düğümü eklemeden boşaltılarak gerçekleştirilmesini sağlar. Maksimum kullanılmaz durumda olma süresi daha hızlı bir yükseltme işlemi sağlar, ancak düğüm havuzu için daha fazla iş yükü kesintisine yol açar. Bu özellik, bölgede fazladan SKU kapasitesi olmaması veya kota sorunları nedeniyle kapasite kısıtlamalarıyla karşılaşan müşteriler için önerilir.
  • Pod Kesintisi Bütçesi , hizmet uygulamaları için ayarlanır ve AKS denetimli düğüm yükseltmeleri gibi gönüllü kesintiler sırasında kapanabilecek pod sayısını sınırlar. Uygulama için yüksek kullanılabilirlik sağlamak üzere, etkin olması gereken uygulama podlarının en az sayısını belirten minAvailable çoğaltma veya sonlandırılabilen uygulama podlarının maksimum sayısını gösteren maxUnavailable çoğaltma olarak yapılandırılabilir. Pod Kesintisi Bütçelerini (PDB) yapılandırmak için sağlanan kılavuza bakın. PdB değerleri, hizmetiniz için en uygun ayarları belirlemek üzere doğrulanmalıdır.
  • Düğüm havuzundaki düğüm boşaltma zaman aşımı, bir yükseltme sırasında düğüm başına podların tahliyesi ve nazik sonlandırma için bekleme süresini yapılandırmanıza olanak tanır. Bu seçenek, uzun süre çalışan iş yükleriyle ilgilenirken kullanışlıdır. Düğüm boşaltma zaman aşımı belirtildiğinde (dakika cinsinden), AKS pod kesintisi bütçelerini beklemeye dikkat eder. Belirtilmezse, varsayılan zaman aşımı 30 dakikadır.
  • Düğüm bekletme süresi, düğüm yükseltmelerinin kontrollü bir şekilde kademelendirilmesine yardımcı olur ve yükseltme sırasında uygulamanın kapalı kalma süresini en aza indirebilir. Düğüm yükseltmeleri arasındaki uygulama hazırlığını denetlemek için tercihen 0 dakikaya yakın bir bekleme süresi belirtebilirsiniz. Belirtilmezse, varsayılan değer 0 dakikadır. Yükseltme hızı ve uygulama kullanılabilirliği açısından doğru sonuçları sağlamak için düğüm bekletme süresi, düğüm havuzundaki maksimum ani artış ve düğüm boşaltma zaman aşımı özellikleriyle birlikte çalışır.
Yükseltme ayarları Artış için kullanılabilir kaynaklar Beklenen davranış
maxSurge = 5 maxUnavailable = 0 5 düğüm artış için kullanılabilir Düğüm havuzunu yükseltmek için 5 düğüm artırılacak.
maxSurge = 5 maxUnavailable = 0 0-4 düğüm artış için kullanılabilir Yükseltme işlemi, maxSurge karşılayacak yeterli düğüm olmadığından başarısız oluyor.
maxSurge = 0 maxUnavailable = 5 Yok çünkü hiçbir aşırı gerilim düğümü gerekli değildir İşlem, düğüm havuzunu yükseltirken yeni düğümlere ihtiyaç duymadan mevcut düğüm havuzundan 5 düğüm kullanır.

Bugün yükseltme işleminde kullanılan doğrulamalar

API, Azure CLI veya Azure portalı aracılığıyla bir yükseltme işlemi başlattığınızda, Azure Kubernetes Service (AKS) yükseltmeyi başlatmadan önce bir dizi yükseltme öncesi doğrulama gerçekleştirir. Bu doğrulamalar kümenin iyi durumda olmasını ve başarıyla yükseltilmesini sağlar.

  • API'de Hataya Neden Olan Değişiklikler: Kullanımda olan ve iş yüklerini etkileyebilecek kullanım dışı API'ler olup olmadığını tanımlar.
  • Kubernetes Yükseltme Sürümü: Hedef sürümün geçerli olduğundan emin olur (örneğin, üç küçük sürümden büyük atlamalar olmaz, düşürme yoktur ve denetim düzlemiyle uyumluluk yoktur).
  • Yanlış PDB Yapılandırma Doğrulaması: Hiçbir düğümün kesintiye uğramasına izin vermeyen gibi maxUnavailable = 0 yanlış yapılandırılmış Pod Kesinti Bütçelerini (PDB) denetler.
  • Kota: Yükseltme işlemi sırasında gerekli olan artan düğümler için yeterli kotanın mevcut olduğunu onaylar.
  • Alt ağ: Yükseltme için yeterli atanabilir IP adresi olup olmadığını veya alt ağ boyutu ayarlamalarının gerekli olup olmadığını doğrular.
  • Sertifikalar/Hizmet Sorumluları: Yükseltme işlemini etkileyebilecek süresi dolan sertifikaları veya hizmet sorumlularını algılar.

Bu denetimler yükseltme hatalarını en aza indirmeye yardımcı olur ve kullanıcılara devam etmeden önce çözülmesi gereken olası sorunlar hakkında erken görünürlük sağlar.

Sonraki adımlar

Bu makalede AKS kümeleri için farklı yükseltme seçenekleri listelenmiştir. Yükseltme en iyi yöntemleri ve diğer önemli noktalar hakkında ayrıntılı bilgi için bkz . AKS düzeltme eki ve yükseltme kılavuzu.