Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Narzędzie do wykrywania problemów z węzłem (NPD) to składnik kubernetes typu open source, który wykrywa problemy związane z węzłami i zgłasza je. Działa jako system serwisowany w każdym węźle w klastrze i zbiera różne metryki i informacje o systemie, takie jak użycie procesora CPU, użycie dysku i łączność sieciowa. Gdy wykryje problem, generuje zdarzenia i/lub warunki węzła. Usługa Azure Kubernetes Service (AKS) używa NPD do monitorowania węzłów w klastrze Kubernetes działającego na platformie Azure w chmurze i zarządzania nimi. Rozszerzenie AKS dla systemu Linux domyślnie włącza NPD.
Uwaga
Uaktualnienia do serwera NPD są niezależne od obrazu węzła i procesów uaktualniania wersji platformy Kubernetes. Jeśli pula węzłów jest w złej kondycji (czyli w stanie niepowodzenia), nowe wersje serwera NPD nie są zainstalowane.
Warunki węzła
Warunki węzła wskazują stały problem, który sprawia, że węzeł jest niedostępny. Usługa AKS używa następujących warunków węzła z serwera NPD do uwidaczniania stałych problemów w węźle. NPD emituje również odpowiednie zdarzenia Kubernetes.
Typ demona problemu | StanWęzła | Przyczyna |
---|---|---|
CustomPluginMonitor | ProblemUszkodzeniaSystemuPlików | WykrytoUszkodzenieSystemuPlików |
CustomPluginMonitor | KubeletProblem | KubeletIsDown |
CustomPluginMonitor | Problem z działaniem kontenera | ŚrodowiskoUruchomienioweKontenerówNieDziała |
MonitorWtyczekNiestandardowych | ZaplanowaneZdarzenieVM | ZaplanowaneZdarzenieVM |
CustomPluginMonitor | FrequentUnregisterNetDevice | Wyrejestrowywanie urządzenia sieciowego |
CustomPluginMonitor | CzęsteRestartowanieKubeletu | CzęsteRestartowanieKubeletu |
CustomPluginMonitor | CzęsteRestartowanieContainerd | CzęsteRestartowanieContainerd |
CustomPluginMonitor | CzęsteRestartowanieDockera | CzęsteRestartowanieDockera |
MonitorLogówSystemowych | KernelDeadlock | DockerHung |
MonitorLogówSystemowych | ReadonlyFilesystem | System plików jest tylko do odczytu |
Zdarzenia
NpD emituje zdarzenia z odpowiednimi informacjami, aby ułatwić diagnozowanie podstawowych problemów.
Typ demona problemu | Przyczyna | Częstotliwość | Opis | Akcja |
---|---|---|---|---|
MonitorWtyczekDostosowanych | Ruch wychodzący zablokowany | 30 minut | To zdarzenie sprawdza łączność z zewnętrznymi punktami końcowymi | Sprawdź, czy zapora lub sieciowa grupa zabezpieczeń blokuje łączność z punktem końcowym, który jest oznaczony |
CustomPluginMonitor | WykrytoUszkodzenieSystemuPlików | 5 min | Sprawdza, czy Docker wykrył uszkodzenie systemu plików. | |
CustomPluginMonitor | KubeletIsDown | 30 sekund | To sprawdza, czy usługa kubelet jest uruchomiona i działa prawidłowo. | |
CustomPluginMonitor | ŚrodowiskoUruchomienioweKontenerówNieDziała | 30 sekund | To zdarzenie sprawdza, czy środowisko uruchomieniowe kontenera, np. kontener jest uruchomiony i jest w dobrej kondycji | |
CustomPluginMonitor | Zaplanowane zamrożenie | 1 min | To zdarzenie sprawdza, czy na węźle zaplanowano zdarzenie blokowania. Sprawdź https://aka.ms/aks/scheduledevents więcej informacji | |
CustomPluginMonitor | Zaplanowane ponowne uruchomienie | 1 min | To zdarzenie sprawdza, czy zdarzenie ponownego rozruchu zostało zaplanowane w węźle. Sprawdź https://aka.ms/aks/scheduledevents dla uzyskania dodatkowych informacji | |
CustomPluginMonitor | Ponowne wdrożenie zaplanowane | 1 min | To zdarzenie sprawdza, czy zdarzenie ponownego wdrażania jest zaplanowane w węźle. Sprawdź https://aka.ms/aks/scheduledevents więcej informacji | |
CustomPluginMonitor | Zakończenie zaplanowane | 1 min | To zdarzenie sprawdza, czy zdarzenie zakończenia jest zaplanowane w węźle. Sprawdź https://aka.ms/aks/scheduledevents więcej informacji | |
MonitorWtyczekNiestandardowych | PreemptScheduled | 2 s | To zdarzenie sprawdza, czy zdarzenie preempt jest zaplanowane w węźle. Sprawdź https://aka.ms/aks/scheduledevents więcej informacji | |
MonitorWtyczekNiestandardowych | DnsProblem | |||
MonitorLogówSystemowych | OOMKilling | |||
MonitorLogówSystemowych | Zadanie | |||
MonitorLogówSystemowych | Wyrejestrowywanie urządzenia sieciowego | |||
MonitorLogówSystemowych | JądroOops | |||
MonitorLogówSystemowych | DockerSocketNieMożnaPołączyć | |||
MonitorLogówSystemowych | KubeletRPCDeadlineExceeded | |||
MonitorLogówSystemowych | KubeletRPCNoSuchContainer | |||
MonitorLogówSystemowych | CNICannotStatFS | |||
MonitorLogówSystemowych | PLEG w złym stanie | |||
MonitorLogówSystemowych | KubeletStart | |||
MonitorLogówSystemowych | DockerStart | |||
MonitorLogówSystemowych | ContainerdStart |
W niektórych przypadkach usługa AKS automatycznie kordonuje i opróżnia węzeł w celu zminimalizowania zakłóceń w pracach. Aby uzyskać więcej informacji na temat akcji i zdarzeń, zobacz Node autodrain.
Ruch wychodzący zablokowany
Lista punktów końcowych sprawdzanych przez element EgressBlocked znajduje się poniżej
Uwaga
Rzeczywiste punkty końcowe będą zależeć od typu klastra i lokalizacji, w której są hostowane (chmura publiczna kontra chmury z ograniczonym dostępem). Zapoznaj się z dokumentacją dotyczącą dostępu wychodzącego tutaj. Dokumentacja dotyczy chmur publicznych
Typ | Przykład | Uwaga |
---|---|---|
MCR | https://mcr.microsoft.com | |
Microsoft Entra ID | https://login.microsoftonline.com" | |
Menedżer Zasobów | https://management.azure.com | |
Pakiety | https://packages.microsoft.com | |
Kube Binary | https://acs-mirror.azureedge.net/acs-mirror/healthz,https://packages.aks.azure.com/acs-mirror/healthz |
Sprawdź warunki i wydarzenia węzła
Sprawdź warunki i zdarzenia węzła przy użyciu polecenia
kubectl describe node
.kubectl describe node my-aks-node
Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych skondensowanych danych wyjściowych:
... ... Conditions: Type Status LastHeartbeatTime LastTransitionTime Reason Message ---- ------ ----------------- ------------------ ------ ------- VMEventScheduled False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 NoVMEventScheduled VM has no scheduled event FrequentContainerdRestart False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 NoFrequentContainerdRestart containerd is functioning properly FrequentDockerRestart False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 NoFrequentDockerRestart docker is functioning properly FilesystemCorruptionProblem False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 FilesystemIsOK Filesystem is healthy FrequentUnregisterNetDevice False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 NoFrequentUnregisterNetDevice node is functioning properly ContainerRuntimeProblem False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:40 +0000 ContainerRuntimeIsUp container runtime service is up KernelDeadlock False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 KernelHasNoDeadlock kernel has no deadlock FrequentKubeletRestart False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 NoFrequentKubeletRestart kubelet is functioning properly KubeletProblem False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 KubeletIsUp kubelet service is up ReadonlyFilesystem False Thu, 01 Jun 2023 19:14:25 +0000 Thu, 01 Jun 2023 03:57:41 +0000 FilesystemIsNotReadOnly Filesystem is not read-only NetworkUnavailable False Thu, 01 Jun 2023 03:58:39 +0000 Thu, 01 Jun 2023 03:58:39 +0000 RouteCreated RouteController created a route MemoryPressure True Thu, 01 Jun 2023 19:16:50 +0000 Thu, 01 Jun 2023 19:16:50 +0000 KubeletHasInsufficientMemory kubelet has insufficient memory available DiskPressure False Thu, 01 Jun 2023 19:16:50 +0000 Thu, 01 Jun 2023 03:57:22 +0000 KubeletHasNoDiskPressure kubelet has no disk pressure PIDPressure False Thu, 01 Jun 2023 19:16:50 +0000 Thu, 01 Jun 2023 03:57:22 +0000 KubeletHasSufficientPID kubelet has sufficient PID available Ready True Thu, 01 Jun 2023 19:16:50 +0000 Thu, 01 Jun 2023 03:57:23 +0000 KubeletReady kubelet is posting ready status. AppArmor enabled ... ... ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeHasSufficientMemory 94s (x176 over 15h) kubelet Node aks-agentpool-40622340-vmss000009 status is now: NodeHasSufficientMemory
Te zdarzenia są również dostępne w usłudze Container Insights za pośrednictwem rozwiązania KubeEvents.
Metryki
NPD również udostępnia metryki Prometheus związane z problemami z węzłami, które można wykorzystać do monitorowania i generowania alertów. Te metryki są udostępniane na porcie 20257 IP węzła i Prometheus może je pobierać.
W poniższym przykładzie YAML znajduje się konfiguracja skrobania, której można użyć z dodatkiem Azure Managed Prometheus jako DaemonSet:
kind: ConfigMap
apiVersion: v1
metadata:
name: ama-metrics-prometheus-config-node
namespace: kube-system
data:
prometheus-config: |-
global:
scrape_interval: 1m
scrape_configs:
- job_name: node-problem-detector
scrape_interval: 1m
scheme: http
metrics_path: /metrics
relabel_configs:
- source_labels: [__metrics_path__]
regex: (.*)
target_label: metrics_path
- source_labels: [__address__]
replacement: '$NODE_NAME'
target_label: instance
static_configs:
- targets: ['$NODE_IP:20257']
W poniższym przykładzie przedstawiono metryki zezłomowane:
problem_gauge{reason="UnregisterNetDevice",type="FrequentUnregisterNetDevice"} 0
problem_gauge{reason="VMEventScheduled",type="VMEventScheduled"} 0
Następne kroki
Aby uzyskać więcej informacji na temat NPD, zobacz kubernetes/node-problem-detector.
Azure Kubernetes Service