Rilevatore del problema del nodo è una libreria open source che monitora l'integrità dei nodi e rileva problemi comuni relativi ai nodi, come problemi di runtime hardware, kernel o container. In Cluster Anthos su Bare Metal, viene eseguito come un servizio systemd su ciascun nodo.
In modalità di anteprima, il rilevatore dei problemi dei nodi è disabilitato per impostazione predefinita.
Quali problemi rileva?
La funzionalità di rilevamento dei problemi dei nodi è in grado di rilevare i seguenti tipi di problemi:
- Problemi di runtime del container, ad esempio daemon di runtime che non rispondono
- Problemi relativi all'hardware, ad esempio CPU, memoria o errori del disco
- Problemi con il kernel, come condizioni di deadlock del kernel o file system danneggiati
Viene eseguito su un nodo e segnala i problemi al server API Kubernetes
come NodeCondition
o come Event
.
(Un NodeCondition
è un problema che impedisce a un nodo di eseguire i pod, mentre un Event
è un problema temporaneo che ha un effetto limitato sui pod, ma è comunque considerato abbastanza importante da essere segnalato).
Ecco alcuni dei NodeConditions
rilevati da Nodo problemi:
KernelDeadlock
ReadonlyFilesystem
FrequentKubeletRestart
FrequentDockerRestart
FrequentContainerdRestart
FrequentUnregisterNetDevice
KubeletUnhealthy
ContainerRuntimeUnhealthy
CorruptDockerOverlay2
Di seguito sono riportati alcuni esempi dei tipi di Events
segnalati da Rilevatore di problemi dei nodi:
Warning TaskHung node/vm-worker-1-user-a12fabb4a99cb92-ddfce8832fd90f6f.lab.anthos kernel: task docker:7 blocked for more than 300 seconds.
Warning KernelOops node/vm-worker-1-user-a12fabb4a99cb92-ddfce8832fd90f6f.lab.anthos kernel: BUG: unable to handle kernel NULL pointer dereference at 00x0.
Come visualizzare i problemi rilevati
Esegui il comando kubectl describe
seguente su un nodo per cercare NodeConditions
e Events
:
kubectl --kubeconfig=KUBECONFIG_PATH describe node NODE_NAME
Nel comando sostituisci le seguenti voci con informazioni specifiche per il tuo ambiente:
KUBECONFIG_PATH
: il percorso del file kubeconfig del cluster di destinazione. (Il percorso del file kubeconfig è in generebmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Tuttavia, se hai specificato l'area di lavoro con il flag WORKSPACE_DIR, il percorso èWORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
.NODE_NAME
: il nome del nodo per cui vuoi trovare informazioni sanitarie.
Come abilitare/disabilitare il rilevamento dei problemi dei nodi
Ecco i passaggi da seguire per abilitare Rilevatore problemi nodo su un determinato cluster:
Modifica il file
ConfigMap
del cluster denominatonode-problem-detector-config
kubectl --kubeconfig=KUBECONFIG_PATH edit configmap \ node-problem-detector-config --namespace=CLUSTER_NAMESPACE
Questo comando avvia automaticamente un editor di testo (ad es. vim o nano) in cui puoi modificare il file
node-problem-detector-config
. Nel comando, sostituisci le voci seguenti con informazioni specifiche per l'ambiente del cluster:- KUBECONFIG_PATH: il percorso del file kubeconfig del cluster di amministrazione. (Il percorso del file kubeconfig è in genere
bmctl-workspace/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. Tuttavia, se hai specificato l'area di lavoro con il flag WORKSPACE_DIR, il percorso èWORKSPACE_DIR/CLUSTER_NAME/CLUSTER_NAME-kubeconfig
. - CLUSTER_NAMESPACE: lo spazio dei nomi del cluster in cui vuoi abilitare il rilevamento dei problemi dei nodi.
- KUBECONFIG_PATH: il percorso del file kubeconfig del cluster di amministrazione. (Il percorso del file kubeconfig è in genere
Inizialmente,
node-problem-detector-config
ConfigMap
non ha un campodata
. Aggiungi il campodata
alla mappa di configurazione con la seguente coppia chiave-valore:data: enabled: "true"
Per disabilitare il rilevatore dei problemi dei nodi in uno spazio dei nomi del cluster, esegui i passaggi precedenti 1 e 2, ma nel passaggio 2 modifica il valore della chiave enabled
in &&39;false'.
Come arrestare/avviare il rilevamento dei problemi dei nodi
Il rilevatore dei problemi dei nodi viene eseguito come servizio systemd
su ogni nodo. Per gestire il nodo dei problemi relativi a un nodo, usa SSH per accedere al nodo ed eseguire i seguenti comandi systemctl
.
Per disabilitare il rilevatore dei problemi dei nodi, esegui il comando seguente:
systemctl stop node-problem-detector
Per riavviare Node Detect Detect, esegui il comando seguente:
systemctl restart node-problem-detector
Per verificare se il rilevatore dei problemi dei nodi è in esecuzione su un nodo specifico, esegui il comando seguente:
systemctl is-active node-problem-detector