Automatyczna naprawa węzła usługi Azure Kubernetes Service (AKS)

Usługa Azure Kubernetes Service (AKS) stale monitoruje stan kondycji węzłów roboczych i automatycznie przeprowadza naprawę węzła, jeśli będzie on w złej kondycji. Platforma maszyny wirtualnej platformy Azure przeprowadza konserwację maszyn wirtualnych, na których występują problemy. Usługi AKS i maszyny wirtualne platformy Azure współpracują ze sobą, aby zminimalizować przerwy w działaniu usługi dla klastrów.

W tym artykule dowiesz się, jak działa funkcja automatycznego naprawiania węzłów dla węzłów systemu Windows i Linux.

Jak usługa AKS sprawdza węzły NotReady

Usługa AKS używa następujących reguł, aby określić, czy węzeł jest w złej kondycji i wymaga naprawy:

  • Węzeł zgłasza stan NotReady po kolejnych kontrolach w ciągu 10-minutowego przedziału czasu.
  • Węzeł nie zgłasza żadnego stanu w ciągu 10 minut.

Stan kondycji węzłów można sprawdzić ręcznie za kubectl get nodes pomocą polecenia .

Jak działa automatyczna naprawa

Uwaga

Usługa AKS inicjuje operacje naprawy za pomocą aks-remediator konta użytkownika.

Jeśli usługa AKS zidentyfikuje węzeł w złej kondycji przez pięć minut, usługa AKS wykonuje następujące akcje:

  1. Próbuje ponownie uruchomić węzeł.
  2. Jeśli ponowne uruchomienie węzła zakończy się niepowodzeniem, usługa AKS odtwarza obraz węzła.
  3. Jeśli reimage nie powiedzie się i jest to węzeł systemu Linux, usługa AKS ponownie wdroży węzeł.

Inżynierowie usługi AKS badają alternatywne korygowania, jeśli automatyczna naprawa nie powiedzie się.

Uwaga

Automatyczna naprawa nie jest wyzwalana, jeśli w węźle znajdują się następujące defekty: node.cloudprovider.kubernetes.io/shutdownToBeDeletedByClusterAutoscaler .

Ogólny proces automatycznego naprawiania może potrwać do godziny. Usługa AKS ponawia próbę maksymalnie 3 razy dla każdego kroku.

Automatyczne opróżnianie węzła

Zaplanowane zdarzenia mogą występować na podstawowych maszynach wirtualnych w dowolnej z pul węzłów. W przypadku pul węzłów typu spot zaplanowane zdarzenia mogą powodować zdarzenie węzła z góry dla węzła. Niektóre zdarzenia węzłów, takie jak wywłaszczanie, powodują automatyczne opróżnianie węzła usługi AKS w celu podjęcia próby kordonu i opróżnienia węzła, którego dotyczy problem. Ten proces umożliwia zmianę harmonogramów dla obciążeń, których dotyczy problem w tym węźle. Możesz zauważyć, że węzeł otrzymuje błąd z "remediator.kubernetes.azure.com/unschedulable"powodu "kubernetes.azure.com/scalesetpriority: spot"metody .

W poniższej tabeli przedstawiono zdarzenia węzła i akcje, które powodują automatyczne opróżnianie węzła usługi AKS:

Zdarzenie opis Akcja
Zamrożenie Maszyna wirtualna ma zostać wstrzymana przez kilka sekund. Procesor CPU i łączność sieciowa mogą zostać zawieszone, ale nie ma to wpływu na pamięć ani otwarte pliki. Nie trzeba podejmować żadnych działań.
Ponowne uruchamianie Maszyna wirtualna jest zaplanowana na ponowny rozruch. Pamięć nietrwała maszyny wirtualnej zostanie utracona. Nie trzeba podejmować żadnych działań.
Ponowne wdrożenie Maszyna wirtualna ma zostać przeniesiona do innego węzła. Efemeryczne dyski maszyny wirtualnej zostaną utracone. Cordon i odpływ.
Wywłaszcza Maszyna wirtualna typu spot jest usuwana. Efemeryczne dyski maszyny wirtualnej zostaną utracone. Cordon i odpływ
Zakończ zatrudnienie Maszyna wirtualna ma zostać usunięta. Cordon i odpływ.

Ograniczenia

W wielu przypadkach usługa AKS może określić, czy węzeł jest w złej kondycji i próbuje rozwiązać problem. Istnieją jednak przypadki, w których usługa AKS nie może naprawić problemu lub wykryć, że istnieje problem. Na przykład usługa AKS nie może wykryć problemów w następujących przykładowych scenariuszach:

  • Stan węzła nie jest zgłaszany z powodu błędu w konfiguracji sieci.
  • Nie można początkowo zarejestrować węzła jako węzła w dobrej kondycji.

Usługa Node Autodrain to usługa, której nie można zagwarantować, że działa doskonale we wszystkich scenariuszach

Następne kroki

Strefy dostępności umożliwiają zwiększenie wysokiej dostępności z obciążeniami klastra usługi AKS.