Condividi tramite


Risoluzione dei problemi di base degli errori node not ready

Questo articolo illustra la procedura di risoluzione dei problemi per ripristinare i nodi del cluster di Microsoft servizio Azure Kubernetes (AKS) 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 come è possibile eseguire la funzionalità di ripristino dei nodi sia per i nodi Windows che per i nodi Linux.

Prima di iniziare

Leggere la guida ufficiale per la risoluzione dei problemi relativi ai cluster Kubernetes. Leggere anche la guida del tecnico Microsoft alla 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 diventano non 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 le interruzioni del servizio per i cluster.

Per i nodi, esistono due forme di heartbeat:

  • Aggiornamenti al file con estensione status di un Node oggetto .

  • Lease di oggetti all'interno dello spazio dei nomi kube-node-lease . A ogni Node oggetto è associato Lease un oggetto .

Rispetto agli aggiornamenti al file con estensione status di un Nodeoggetto , è una Lease risorsa leggera. L'uso di Lease oggetti per gli heartbeat riduce l'impatto sulle prestazioni di questi aggiornamenti per i cluster di grandi dimensioni.

Il kubelet è responsabile della creazione e dell'aggiornamento del file con estensione status per Node gli oggetti. È anche responsabile dell'aggiornamento degli Lease oggetti correlati agli Node oggetti.

Il kubelet aggiorna il Node file con estensione status se si verifica una delle condizioni seguenti:

  • Si verifica una modifica dello stato.

  • Dopo un intervallo di tempo configurato non si verifica alcun aggiornamento.

L'intervallo predefinito per gli aggiornamenti di stato a è di Node cinque minuti. Questo intervallo è molto più lungo del timeout predefinito di 40 secondi per i nodi non raggiungibili. Il kubelet crea e quindi aggiorna il relativo Lease oggetto una volta ogni dieci secondi (intervallo di aggiornamento predefinito). Aggiornamenti che Lease si verifichino in modo indipendente dagli aggiornamenti allo Node stato. Se l'aggiornamento Lease non riesce, il kubelet ritenta, usando un backoff esponenziale che inizia a 200 millisecondi e viene limitato a un massimo di sette secondi.

Non è possibile pianificare un Pod oggetto in un Node oggetto con stato NotReady o Unknown. È possibile pianificare un Pod oggetto solo nei nodi che si trovano nello Ready stato .

Se il nodo è nello MemoryPressurestato , DiskPressureo PIDPressure , è necessario gestire le risorse per pianificare pod aggiuntivi nel nodo. Se il nodo è in NetworkUnavailable modalità, è necessario configurare correttamente la rete nel nodo. Assicurarsi che siano soddisfatte le condizioni seguenti:

  • Lo stato del cluster è Riuscito (in esecuzione). Per controllare lo stato del cluster nella 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 Essentials per trovare lo stato. In alternativa, immettere il comando az aks show nell'interfaccia della riga di comando di Azure.

    portale di Azure screenshot di una pagina panoramica del cluster servizio Azure Kubernetes (A K S). Nella sezione Essentials lo stato è 'Succeeded (Running)'.

  • Il pool di nodi ha uno stato di provisioningcompletato e uno stato di alimentazione in esecuzione. 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.

    portale di Azure screenshot di un pool di nodi del cluster servizio Azure Kubernetes (A K S). Lo stato di provisioning è Riuscito. Lo stato di alimentazione è In esecuzione.

  • Le porte in uscita necessarie sono aperte nei gruppi di sicurezza di rete (NSG) e nel firewall in modo che sia possibile raggiungere l'indirizzo IP del server API. Per altre informazioni, vedere Regole di rete in uscita necessarie e FQDN per i cluster del servizio Azure Kubernetes.

  • I nodi hanno distribuito le immagini dei nodi più recenti.

  • I nodi sono nello Running stato anziché Stopped o Deallocated.

  • Il cluster esegue una versione di Kubernetes supportata dal servizio Azure Kubernetes.

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.