Risolvere gli errori di Node Not Ready se sono presenti certificati scaduti
Questo articolo illustra come risolvere i problemi relativi agli scenari Node Not Ready all'interno di un cluster del servizio Azure Kubernetes (Microsoft servizio Azure Kubernetes) se sono presenti certificati scaduti.
Prerequisiti
- Interfaccia della riga di comando di Azure
- Strumento da riga di comando OpenSSL per la visualizzazione e la firma del certificato
Sintomi
Si scopre che un nodo del cluster del servizio Azure Kubernetes si trova nello stato Node Not Ready (Nodo non pronto).
Causa
Sono presenti uno o più certificati scaduti.
Prevenzione: eseguire OpenSSL per firmare i certificati
Controllare le date di scadenza dei certificati richiamando il comando openssl-x509 , come indicato di seguito:
Per i nodi del set di scalabilità di macchine virtuali , usare il comando az vmss run-command invoke :
az vmss run-command invoke \ --resource-group <resource-group-name> \ --name <vm-scale-set-name> \ --command-id RunShellScript \ --instance-id 0 \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
Per i nodi del set di disponibilità della macchina virtuale, usare il comando az vm run-command invoke :
az vm run-command invoke \ --resource-group <resource-group-name> \ --name <vm-availability-set-name> \ --command-id RunShellScript \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
È possibile che vengano visualizzati determinati codici di errore dopo aver richiamato questi comandi. Per informazioni sui codici di errore 50, 51 e 52, vedere i collegamenti seguenti, se necessario:
- Risolvere i problemi relativi al codice di errore OutboundConnFailVMExtensionError (50)
- Risolvere i problemi relativi al codice di errore K8SAPIServerConnFailVMExtensionError (51)
- Risolvere i problemi relativi al codice di errore K8SAPIServerDNSLookupFailVMExtensionError (52)
Se viene visualizzato il codice di errore 99, questo indica che il comando apt-get update è bloccato dall'accesso a uno o più dei domini seguenti:
- security.ubuntu.com
- azure.archive.ubuntu.com
- nvidia.github.io
Per consentire l'accesso a questi domini, aggiornare la configurazione di firewall di blocco, gruppi di sicurezza di rete o appliance virtuali di rete.
Soluzione: ruotare i certificati
È possibile applicare la rotazione automatica dei certificati per ruotare i certificati nei nodi prima della scadenza. Questa opzione non richiede tempi di inattività per il cluster del servizio Azure Kubernetes.
Se è possibile gestire i tempi di inattività del cluster, è possibile ruotare manualmente i certificati .
Note
A partire dal 15 luglio 2021, versione del servizio Azure Kubernetes, un aggiornamento del cluster del servizio Azure Kubernetes consente automaticamente di ruotare i certificati del cluster. Tuttavia, questa modifica comportamentale non ha effetto per un certificato cluster scaduto. Se un aggiornamento esegue solo le azioni seguenti, i certificati scaduti non verranno rinnovati:
- Aggiornare un'immagine del nodo.
- Aggiornare un pool di nodi alla stessa versione.
- Aggiornare un pool di nodi a una versione più recente.
Solo un aggiornamento completo ( ovvero un aggiornamento per il piano di controllo e il pool di nodi) consente di rinnovare i certificati scaduti.
Ulteriori informazioni
- Per i passaggi generali per la risoluzione dei problemi, vedere Risoluzione dei problemi di base degli errori node non pronti.