Risoluzione di base dei problemi di avvio del cluster del servizio Azure Kubernetes
Questo articolo illustra i metodi di risoluzione dei problemi di base da usare se non è possibile avviare correttamente un cluster Microsoft servizio Azure Kubernetes (AKS).
Prerequisiti
Interfaccia della riga di comando di Azure (versione 2.0.59 o successiva).
Lo strumento kubectl kubernetes. Per installare kubectl usando l'interfaccia della riga di comando di Azure, eseguire il comando az aks install-cli .
Visualizzare gli errori dall'interfaccia della riga di comando di Azure
Quando si avviano i cluster usando l'interfaccia della riga di comando di Azure, gli errori vengono registrati come output se l'operazione non riesce. Ecco come può essere visualizzato un comando, un input utente e un output dell'operazione in una Bash
console:
$ az aks start --resource-group myResourceGroup --name MyManagedCluster
(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://learn.microsoft.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35
Questi errori contengono spesso descrizioni dettagliate di ciò che si è verificato un errore nell'operazione di avvio del cluster e forniscono collegamenti ad articoli che contengono altri dettagli. È anche possibile usare gli articoli sulla risoluzione dei problemi come riferimento in base all'errore generato da un'operazione dell'interfaccia della riga di comando di Azure.
Visualizzare i dettagli dell'errore nel portale di Azure
Per visualizzare i dettagli sugli errori nella portale di Azure, esaminare il log attività di Azure. Per trovare l'elenco dei log attività nella portale di Azure, cercare nel log attività. In alternativa, selezionare Notifiche (icona a forma di campana) e quindi selezionare Altri eventi nel log attività.
L'elenco dei log nella pagina Log attività contiene una voce di riga in cui il valore della colonna Nome operazione è denominato Start Managed Cluster. Il valore di colonna Evento avviato da colonna corrispondente viene impostato sul nome dell'account aziendale o dell'istituto di istruzione. Se l'operazione ha esito positivo, il valore della colonna Stato viene visualizzato Accettato.
Cosa accade se invece si è verificato un errore? In tal caso, il campo Stato dell'operazione Avvia cluster gestito mostra Non riuscito. A differenza delle operazioni per creare componenti del cluster, è necessario espandere la voce dell'operazione non riuscita per esaminare le voci di sottooperazione. I nomi di sottooperazione tipici sono azioni dei criteri, ad esempio l'azione dei criteri 'audit' e 'auditIfNotExists'. Alcune sottooperazioni continueranno a mostrare che hanno avuto esito positivo.
Per ulteriori indagini, è possibile selezionare una delle sottooperazioni non riuscite. Viene aperto un riquadro laterale in modo che sia possibile esaminare altre informazioni sulla sottooperazione. È possibile risolvere i problemi relativi ai valori per i campi, ad esempio Riepilogo, JSON e Cronologia modifiche. Il campo JSON contiene il testo di output per l'errore in formato JSON e in genere fornisce le informazioni più utili.
Visualizzare le informazioni dettagliate del cluster
È anche possibile generare informazioni dettagliate sul cluster per facilitare la risoluzione dei problemi tramite il pannello Diagnostica e risoluzione dei problemi nel portale di Azure. Per accedere a questa funzionalità, seguire questa procedura:
Nella portale di Azure cercare e selezionare Servizi Kubernetes.
Selezionare il nome del cluster del servizio Azure Kubernetes.
Nel riquadro di spostamento della pagina del cluster del servizio Azure Kubernetes selezionare Diagnostica e risoluzione dei problemi.
Nella pagina Diagnosi e risoluzione dei problemi selezionare il collegamento Informazioni dettagliate cluster. Lo strumento informazioni dettagliate cluster analizza il cluster e quindi fornisce un elenco dei risultati nella sezione Osservazioni e soluzioni della pagina Informazioni dettagliate cluster.
Selezionare uno dei risultati per visualizzare altre informazioni su un problema e le possibili soluzioni.
Visualizzare le risorse nel portale di Azure
Nella portale di Azure potrebbe essere necessario visualizzare le risorse create al momento della compilazione del cluster. In genere, queste risorse si trovano in un gruppo di risorse che inizia con MC_. Il gruppo di risorse del cluster gestito potrebbe avere un nome, ad esempio MC_MyResourceGroup_MyManagedCluster_<codice> di percorso. Tuttavia, il nome può essere diverso se il cluster è stato compilato usando un gruppo di risorse cluster gestito personalizzato.
Per trovare il gruppo di risorse, cercare e selezionare Gruppi di risorse nella portale di Azure e quindi selezionare il gruppo di risorse in cui è stato creato il cluster. L'elenco di risorse viene visualizzato nella pagina Panoramica del gruppo di risorse.
Avviso
È consigliabile non modificare le risorse nel gruppo di risorse MC_ . Questa azione potrebbe causare effetti indesiderati nel cluster del servizio Azure Kubernetes.
Per esaminare lo stato di un set di scalabilità di macchine virtuali, è possibile selezionare il nome del set di scalabilità nell'elenco di risorse del gruppo di risorse. Potrebbe avere un nome simile a aks-nodepool1-12345678-vmss e un valore Type del set di scalabilità di macchine virtuali. Lo stato del set di scalabilità viene visualizzato nella parte superiore della pagina Panoramica del pool di nodi e altri dettagli sono visualizzati nell'intestazione Informazioni di base. Se la distribuzione non è riuscita, lo stato visualizzato è Non riuscito.
Per tutte le risorse, è possibile esaminare i dettagli per comprendere meglio il motivo per cui la distribuzione non è riuscita. Per un set di scalabilità, è possibile selezionare il testo Stato non riuscito per visualizzare i dettagli sull'errore. I dettagli si trovano in una riga contenente le colonne Status, Level e Code . Nell'esempio seguente viene illustrata una riga di valori di colonna.
Colonna | Valore di esempio |
---|---|
Stato | Provisioning non riuscito |
Livello | Errore |
Codice | ProvisioningState/failed/VMExtensionProvisioningError |
Selezionare la riga per visualizzare il campo Messaggio . Contiene altre informazioni sull'errore. Ad esempio, il campo Messaggio per la riga di esempio inizia con il testo seguente:
La macchina virtuale ha segnalato un errore durante l'elaborazione dell'estensione "vmssCSE". Messaggio di errore: "Enable failed: failed to execute command: command terminate with exit status=50 [stdout] [stderr] 0 0 0 --: Armed with this information, you can conclude che le macchine virtuali nel set di scalabilità non sono riuscite e generate stato di uscita 50.
Usare i comandi Kubectl
Per un'altra opzione per risolvere gli errori nel cluster, immettere i comandi kubectl per ottenere informazioni dettagliate sulle risorse distribuite nel cluster. Per usare kubectl, accedere prima al cluster del servizio Azure Kubernetes:
az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster
A seconda del tipo di errore e del momento in cui si è verificato, potrebbe non essere possibile accedere al cluster per ottenere altri dettagli. Tuttavia, in generale, se il cluster è stato creato e viene visualizzato nel portale di Azure, dovrebbe essere possibile accedere ed eseguire i comandi kubectl.
Visualizzare i nodi del cluster (kubectl get nodes)
Per ottenere altri dettagli per determinare lo stato dei nodi, visualizzare i nodi del cluster immettendo il comando kubectl get nodes. In questo esempio non viene segnalato alcun nodo nel cluster:
$ kubectl get nodes
No resources found
Visualizzare i pod nello spazio dei nomi di sistema (kubectl get pods)
La visualizzazione dei pod nello spazio dei nomi kube-system è anche un buon modo per risolvere il problema. Questo metodo consente di visualizzare lo stato dei pod di sistema Kubernetes. In questo esempio si immette il kubectl get pods
comando :
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-845757d86-7xjqb 0/1 Pending 0 78m
coredns-autoscaler-5f85dc856b-mxkrj 0/1 Pending 0 77m
konnectivity-agent-67f7f5554f-nsw2g 0/1 Pending 0 77m
konnectivity-agent-8686cb54fd-xlsgk 0/1 Pending 0 65m
metrics-server-6bc97b47f7-dfhbr 0/1 Pending 0 77m
Descrivere lo stato di un pod (kubectl describe pod)
Descrivendo lo stato dei pod, è possibile visualizzare i dettagli di configurazione e gli eventi che si sono verificati nei pod. Eseguire il comando kubectl describe pod:
$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name: coredns-845757d86-7xjqb
Namespace: kube-system
Priority: 2000001000
Priority Class Name: system-node-critical
Node: <none>
Labels: k8s-app=kube-dns
kubernetes.io/cluster-service=true
pod-template-hash=845757d86
version=v20
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 24m (x1 over 25m) default-scheduler no nodes available to schedule pods
Warning FailedScheduling 29m (x57 over 84m) default-scheduler no nodes available to schedule pods
Nell'output del comando è possibile notare che il pod non può essere distribuito in un nodo perché non sono disponibili nodi.
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.