Risolvere gli errori node not ready se sono presenti certificati scaduti
Questo articolo consente di risolvere gli scenari Node Not Ready all'interno di un cluster microsoft servizio Azure Kubernetes (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 è nello stato Node Not Ready.You discover that an AKS cluster node is in the Node Not Ready state.
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"
Dopo aver richiamato questi comandi, è possibile che vengano visualizzati determinati codici di errore. 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 al comando apt-get update viene impedito l'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 eventuali 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 .
Nota
A partire dal 15 luglio 2021, versione del servizio Azure Kubernetes, un aggiornamento automatico del cluster del servizio Azure Kubernetes consente 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 sia per il piano di controllo che per 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.