Aracılığıyla paylaş


Azure Kubernetes Service (AKS) düğümü otomatik onarımı

Azure Kubernetes Service (AKS) çalışan düğümlerinin sistem durumlarını sürekli izler ve durumu bozulan düğümlerde otomatik onarım gerçekleştirir. Azure sanal makine (VM) platformu , sorun yaşayan VM'lerde bakım gerçekleştirir. AKS ve Azure sanal makineleri, kümelerde hizmet kesintilerini en aza indirmek için birlikte çalışır.

Bu makalede, otomatik düğüm onarım işlevinin Windows ve Linux düğümleri için nasıl davrandığını öğreneceksiniz.

AKS NotReady düğümlerini nasıl denetler?

AKS, bir düğümün iyi durumda olmadığını ve onarılması gerekip gerekmediğini belirlemek için aşağıdaki kuralları kullanır:

  • Düğüm, 10 dakikalık bir zaman dilimi içinde ardışık denetimlerde NotReady durumunu bildirir.
  • Düğüm 10 dakika içinde herhangi bir durum bildirmez.

komutunu kullanarak düğümlerinizin sistem durumunu el ile kubectl get nodes de kontrol edebilirsiniz.

Otomatik onarım nasıl çalışır?

Not

AKS, aks-remediator kullanıcı hesabıyla onarım işlemlerini başlatır.

AKS beş dakika boyunca iyi durumda olmayan bir düğüm tanımlarsa, AKS aşağıdaki eylemleri gerçekleştirir:

  1. Düğümü yeniden başlatmayı dener.
  2. Düğümü yeniden başlatma işlemi başarısız olursa AKS düğümü yeniden oluşturur.
  3. Yeniden oluşturma başarısız olursa ve bir Linux düğümüyse AKS düğümü yeniden dağıtır.

AKS mühendisleri otomatik onarım başarısız olursa alternatif düzeltmeleri araştırır.

Not

Düğümde aşağıdaki renk tonları varsa otomatik onarım tetiklenmez: node.cloudprovider.kubernetes.io/shutdown, ToBeDeletedByClusterAutoscaler.

Genel otomatik onarım işleminin tamamlanması bir saat kadar sürebilir. AKS, her adım için en fazla 3 kez yeniden denenir.

Düğüm otomatik boşaltma

Zamanlanmış olaylar düğüm havuzlarınızın herhangi birinde temel alınan VM'lerde gerçekleşebilir. Spot düğüm havuzları için zamanlanmış olaylar düğüm için önceden tanımlanmış düğüm olayına neden olabilir. Preempt gibi bazı düğüm olayları AKS düğümünün otomatik olarak boşaltılarak etkilenen düğümün kordonunu ve boşaltılması denemesine neden olur. Bu işlem, söz konusu düğümdeki etkilenen tüm iş yükleri için yeniden zamanlanmayı etkinleştirir. nedeniyle düğümün ile "remediator.kubernetes.azure.com/unschedulable""kubernetes.azure.com/scalesetpriority: spot"bir taint aldığını fark edebilirsiniz.

Aşağıdaki tabloda AKS düğümü otomatik boşaltma için neden oldukları düğüm olayları ve eylemleri gösterilmektedir:

Olay Açıklama Eylem
Dondur VM birkaç saniye duraklatmak üzere zamanlanmıştır. CPU ve ağ bağlantısı askıya alınmış olabilir, ancak bellek veya açık dosyaları etkilemez. Eylem yok.
Yeniden başlatma VM yeniden başlatma için zamanlandı. VM'nin kalıcı olmayan belleği kaybolur. Eylem yok.
Yeniden dağıtım VM başka bir düğüme taşınacak şekilde zamanlandı. VM'nin kısa ömürlü diskleri kaybolur. Kordon ve boşaltma.
Preempt Spot VM siliniyor. VM'nin kısa ömürlü diskleri kaybolur. Kordon ve drenaj
Sonlandır VM silinmek üzere zamanlandı. Kordon ve boşaltma.

Sınırlamalar

Çoğu durumda AKS, bir düğümün iyi durumda olmadığını belirleyebilir ve sorunu onarmayı dener. Ancak AKS'nin sorunu onaramama veya bir sorunun var olduğunu algılaması gibi durumlar vardır. Örneğin AKS, aşağıdaki örnek senaryolardaki sorunları algılayamaz:

  • Ağ yapılandırmasındaki hata nedeniyle düğüm durumu bildirilmiyor.
  • Bir düğüm başlangıçta iyi durumda bir düğüm olarak kaydedilemedi.

Node Autodrain en iyi çabayı gösteren bir hizmettir ve tüm senaryolarda mükemmel şekilde çalışması garanti edilemez

Sonraki adımlar

AKS kümesi iş yüklerinizle yüksek kullanılabilirliği artırmak için kullanılabilirlik alanlarını kullanın.