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:
- Próbuje ponownie uruchomić węzeł.
- Jeśli ponowne uruchomienie węzła zakończy się niepowodzeniem, usługa AKS odtwarza obraz węzła.
- 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/shutdown
ToBeDeletedByClusterAutoscaler
.
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:
Wydarzenie | 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ń. |
Wdróż ponownie | 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.
Azure Kubernetes Service