Risoluzione dei problemi di base degli errori node non pronti
Questo articolo illustra la procedura di risoluzione dei problemi per ripristinare i nodi del cluster di Microsoft servizio Azure Kubernetes (servizio Azure Kubernetes) dopo un errore. Questo articolo illustra in modo specifico i messaggi di errore più comuni generati quando si verifica un errore Node Not Ready e spiega in che modo è possibile eseguire la funzionalità di ripristino dei nodi per i nodi Windows e Linux.
Operazioni preliminari
Leggere la guida ufficiale per la risoluzione dei problemi dei cluster Kubernetes. Leggere anche la guida del tecnico Microsoft per la risoluzione dei problemi di Kubernetes. Questa guida contiene i comandi per la risoluzione dei problemi relativi a pod, nodi, cluster e altre funzionalità.
Prerequisiti
- Interfaccia della riga di comando di Azure, versione 2.31 o successiva. Se l'interfaccia della riga di comando di Azure è già installata, è possibile trovare il numero di versione eseguendo
az --version
.
Risoluzione dei problemi di base
Il servizio Azure Kubernetes monitora continuamente lo stato di integrità dei nodi di lavoro e ripristina automaticamente i nodi se non sono integri. La piattaforma macchina virtuale di Azure gestisce le macchine virtuali che riscontrano problemi. Il servizio Azure Kubernetes e le macchine virtuali di Azure interagiscono per ridurre al minimo le interruzioni del servizio per i cluster.
Per i nodi esistono due forme di heartbeat:
Aggiorna lo stato di un
Node
oggetto .Oggetti Lease all'interno dello spazio dei nomi kube-node-lease. Ognuno
Node
ha un oggetto associatoLease
.
Rispetto agli aggiornamenti allo stato di un oggetto Node
, è Lease
una risorsa leggera. L'uso Lease
di oggetti per heartbeat riduce l'impatto sulle prestazioni di questi aggiornamenti per cluster di grandi dimensioni.
Kubelet è responsabile della creazione e dell'aggiornamento di .status per Node
gli oggetti. È anche responsabile dell'aggiornamento degli Lease
oggetti correlati agli Node
oggetti.
- Kubelet aggiorna il nodo
.status
quando si verifica una modifica dello stato o se non è stato eseguito alcun aggiornamento per un intervallo configurato. L'intervallo predefinito per.status
gli aggiornamenti ai nodi è di cinque minuti, che è molto più lungo del timeout predefinito di 40 secondi per i nodi non raggiungibili. - Il kubelet crea e quindi aggiorna l'oggetto
Lease
ogni 10 secondi (intervallo di aggiornamento predefinito).Lease
gli aggiornamenti vengono eseguiti indipendentemente dagli aggiornamenti al nodo.status
. Se l'aggiornamentoLease
ha esito negativo, kubelet ritenta, usando un backoff esponenziale che inizia a 200 millisecondi e viene limitato a sette secondi.
Non è possibile pianificare un pod in un nodo con stato NotReady
o Unknown
. È possibile pianificare un pod solo nei nodi nello Ready
stato.
Se il nodo si trova nello MemoryPressure
stato , DiskPressure
o PIDPressure
, è necessario gestire le risorse per pianificare pod aggiuntivi nel nodo. Se il nodo è in NetworkUnavailable
modalità, è necessario configurare correttamente la rete nel nodo.
Il servizio Azure Kubernetes gestisce automaticamente il ciclo di vita e le operazioni dei nodi dell'agente. La modifica delle risorse IaaS associate ai nodi dell'agente non è supportata. Ad esempio, la personalizzazione di un nodo tramite connessioni SSH, l'aggiornamento dei pacchetti o la modifica della configurazione di rete in un nodo non è supportata. Per altre informazioni, vedere Copertura del supporto del servizio Azure Kubernetes per i nodi dell'agente.
Assicurarsi che siano soddisfatte le condizioni seguenti:
Lo stato del cluster è Succeeded (Running). Per controllare lo stato del cluster nel portale di Azure, cercare e selezionare Servizi Kubernetes e selezionare il nome del cluster del servizio Azure Kubernetes. Quindi, nella pagina Panoramica del cluster cercare Informazioni di base per trovare lo stato. In alternativa, immettere il comando az aks show nell'interfaccia della riga di comando di Azure.
Il pool di nodi ha lo stato Provisioning completato e lo stato di Alimentazione è In esecuzione.Your node pool has a Provisioning state of Succeeded and a Power state of Running. Per controllare lo stato del pool di nodi nella portale di Azure, tornare alla pagina del cluster del servizio Azure Kubernetes e quindi selezionare Pool di nodi. In alternativa, immettere il comando az aks nodepool show nell'interfaccia della riga di comando di Azure.
Le porte in uscita necessarie sono aperte nei gruppi di sicurezza di rete e nel firewall in modo che sia possibile raggiungere l'indirizzo IP del server API. Per altre informazioni, vedere Regole di rete in uscita e FQDN necessari per i cluster del servizio Azure Kubernetes.
I nodi hanno distribuito le immagini dei nodi più recenti.
I nodi si trovano nello
Running
stato invece diStopped
oDeallocated
.Il cluster esegue una versione supportata dal servizio Azure Kubernetes.
Ulteriori informazioni
Per risolvere i problemi relativi allo Not Ready
stato di un nodo, vedere Risolvere i problemi relativi a una modifica in un nodo integro in Stato Non pronto.
Dichiarazione di non responsabilità di contatti di terze parti
Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.