Rozwiązywanie problemów z niepowodzeniami węzła, po których następuje odzyskiwanie
Ten artykuł zawiera przewodnik rozwiązywania problemów z węzłem Nie wszystko gotowe" w klastrach usługi Azure Kubernetes Service (AKS). Gdy węzeł przechodzi w stan "NotReady", może zakłócić działanie aplikacji i spowodować, że przestanie odpowiadać. Zazwyczaj węzeł jest automatycznie odzyskiwane po krótkim czasie. Jednak aby zapobiec powtarzającym się problemom i utrzymywać stabilne środowisko, ważne jest, aby zrozumieć podstawowe przyczyny, aby móc wdrożyć skuteczne rozwiązania.
Przyczyna
Istnieje kilka scenariuszy, które mogą spowodować wystąpienie stanu "NotReady":
Niedostępność serwera interfejsu API. Powoduje to niepowodzenie sondy gotowości. Uniemożliwia to dołączanie zasobnika do usługi, dzięki czemu ruch nie jest już przekazywany do wystąpienia zasobnika.
Błędy hosta maszyny wirtualnej. Aby ustalić, czy wystąpiły błędy hosta maszyny wirtualnej, sprawdź następujące źródła informacji:
- Diagnostyka usługi AKS
- Stan platformy Azure
- Powiadomienia platformy Azure (w przypadku ostatnich przestojów lub okresów konserwacji)
Rozwiązanie
Aby rozwiązać ten problem, wykonaj podane dalej czynności.
- Uruchom polecenie ,
kubectl describe node <node-name>
aby przejrzeć szczegółowe informacje o stanie węzła. Poszukaj wszelkich komunikatów o błędach lub ostrzeżeń, które mogą wskazywać główną przyczynę problemu. - Sprawdź dostępność serwera interfejsu
kubectl get apiservices
API, uruchamiając polecenie . Upewnij się, że sonda gotowości jest poprawnie skonfigurowana w pliku YAML wdrożenia. - Sprawdź konfigurację sieci węzła, aby upewnić się, że nie ma problemów z łącznością.
- Sprawdź użycie zasobów węzła, takie jak procesor CPU, pamięć i dysk, aby zidentyfikować potencjalne ograniczenia. Aby uzyskać więcej informacji, zobacz Monitorowanie wydajności klastra Kubernetes za pomocą szczegółowych informacji o kontenerze
Aby uzyskać więcej informacji, zobacz Podstawowe rozwiązywanie problemów z niepowodzeniami węzła Nie gotowe.
Zapobieganie
Aby zapobiec wystąpieniu tego problemu w przyszłości, wykonaj co najmniej jedną z następujących akcji:
- Upewnij się, że warstwa usługi jest w pełni płatna.
- Zmniejsz liczbę żądań
watch
i doget
serwera interfejsu API.