Risolvere i problemi del motore del servizio Azure Kubernetes nell'hub di Azure Stack
È possibile che si verifichi un problema durante la distribuzione o l'uso del motore del servizio Azure Kubernetes nell'hub di Azure Stack. Questo articolo illustra i passaggi per risolvere i problemi di distribuzione del motore del servizio Azure Kubernetes. Raccogliere informazioni sul motore del servizio Azure Kubernetes, raccogliere i log di Kubernetes ed esaminare i codici di errore dell'estensione dello script personalizzati. È anche possibile aprire un problema di GitHub per il motore del servizio Azure Kubernetes.
Nota
Per AKSe versione 0.75.3 e successive, i aks-engine
comandi seguenti inizieranno con aks-engine-azurestack
anziché aks-engine
.
Risolvere i problemi di installazione del motore del servizio Azure Kubernetes
Se i passaggi di installazione precedenti non sono riusciti, è possibile installare il motore del servizio Azure Kubernetes usando gestione pacchetti GoFish. GoFish si descrive come una Homebrew multipiattaforma.
Raccogliere log di nodi e cluster
È possibile trovare le istruzioni sulla raccolta di log di nodi e cluster in Recupero di log di nodi e cluster.
Prerequisiti
Questa guida presuppone che l'interfaccia della riga di comando di Azure e il motore del servizio Azure Kubernetes siano già stati scaricati.
Questa guida presuppone anche che sia stato distribuito un cluster usando il motore del servizio Azure Kubernetes. Per altre informazioni, vedere Distribuire un cluster Kubernetes con il motore del servizio Azure Kubernetes nell'hub di Azure Stack .
Recupero dei log
Il aks-engine get-logs
comando può essere utile per risolvere i problemi relativi al cluster. Il comando genera, raccoglie e scarica un set di file nella workstation. I file includono la configurazione del nodo, lo stato e la configurazione del cluster e configurare i file di log.
A livello generale: il comando funziona stabilendo una sessione SSH in ogni nodo, eseguendo uno script di raccolta log che raccoglie e comprime i file pertinenti e scarica il file .ZIP nel computer locale.
Autenticazione SSH
Per stabilire una sessione SSH ai nodi Linux del cluster, è necessaria una chiave privata SSH valida. Le credenziali di Windows vengono archiviate nel modello API e verranno caricate da questa posizione. Impostare windowsprofile.sshEnabled
su true per abilitare SSH nei nodi di Windows.
Caricare i log in un contenitore dell'account di archiviazione
Dopo aver recuperato correttamente i log del cluster, il motore del servizio Azure Kubernetes può salvarli in un contenitore dell'account di archiviazione di Azure se è impostato un parametro facoltativo --upload-sas-url
. Il motore del servizio Azure Kubernetes prevede che il nome del contenitore faccia parte dell'URL di firma di accesso condiviso fornito. Il formato previsto è https://{blob-service-uri}/{container-name}?{sas-token}
.
Nota
Gli account di archiviazione nei cloud personalizzati che usano il provider di identità AD FS non sono ancora supportati.
Nodi non in grado di aggiungere il cluster
Per impostazione predefinita, aks-engine get-logs
raccoglie i log dai nodi che sono stati aggiunti correttamente al cluster. Per raccogliere i log dalle macchine virtuali che non sono state in grado di aggiungere il cluster, impostare il flag --vm-names
:
--vm-name k8s-pool-01,k8s-pool-02
Utilizzo per get-logs del motore del servizio Azure Kubernetes
Supponendo che sia stato distribuito un cluster e che il modello API usato originariamente per distribuire tale cluster sia archiviato in _output/<dnsPrefix>/apimodel.json
, è quindi possibile raccogliere i log che eseguono un comando simile al seguente:
aks-engine get-logs \
--location <location> \
--api-model _output/<dnsPrefix>/apimodel.json \
--ssh-host <dnsPrefix>.<location>.cloudapp.azure.com \
--linux-ssh-private-key ~/.ssh/id_rsa
Parametri
Parametro | Obbligatorio | Descrizione |
---|---|---|
--location | Sì | Posizione di Azure del gruppo di risorse del cluster. |
--api-model | Sì | Percorso del modello API generato per il cluster. |
--ssh-host | Sì | FQDN, o indirizzo IP, di un listener SSH in grado di raggiungere tutti i nodi del cluster. |
--linux-ssh-private-key | Sì | Percorso di una chiave privata SSH che può essere usata per creare una sessione remota nei nodi Linux del cluster. |
--output-directory | No | Directory di output, derivata da --api-model se mancante. |
--control-plane-only | No | Raccoglie solo i log dai nodi del piano di controllo. |
--vm-names | No | Raccoglie solo i log dalle macchine virtuali specificate (nomi delimitati da virgole). |
--upload-sas-url | No | URL di firma di accesso condiviso dell'account di archiviazione di Azure per caricare i log raccolti. |
Esaminare i codici di errore dell'estensione dello script personalizzato
Il motore del servizio Azure Kubernetes produce uno script per ogni server Ubuntu come risorsa per l'estensione dello script personalizzato (CSE) per eseguire attività di distribuzione. Se lo script genera un errore, verrà registrato un errore in /var/log/azure/cluster-provision.log
. Gli errori vengono visualizzati nel portale. Il codice di errore può essere utile per capire il caso del problema. Per altre informazioni sui codici di uscita cse, vedere cse_helpers.sh
.
Fornire i log di Kubernetes a un tecnico del supporto Tecnico Microsoft
Se dopo aver raccolto ed esaminato i log non è ancora possibile risolvere il problema, è possibile avviare il processo di creazione di un ticket di supporto e fornire i log raccolti.
L'operatore può combinare i log prodotti insieme ad altri log di sistema che potrebbero essere necessari al supporto tecnico Microsoft. L'operatore può renderli disponibili a Microsoft.
È possibile fornire i log di Kubernetes in diversi modi:
- È possibile contattare l'operatore dell'hub di Azure Stack. L'operatore usa le informazioni dei log archiviati nel file .ZIP per creare il caso di supporto.
- Se si dispone dell'URL di firma di accesso condiviso per un account di archiviazione in cui è possibile caricare i log di Kubernetes, è possibile includere il comando e il flag seguenti con l'URL di firma di accesso condiviso per salvare i log nell'account di archiviazione:
Per istruzioni, vedere Caricare i log in un contenitore dell'account di archiviazione.aks-engine get-logs -upload-sas-url <SAS-URL>
- Se si è un operatore cloud, è possibile:
- Usare il pannello Guida e supporto nel portale di amministrazione dell'hub di Azure Stack per caricare i log. Per istruzioni, vedere Inviare i log ora con il portale di amministrazione.
- Usare il cmdlet Di PowerShell Get-AzureStackLog usando l'istruzione Privileged End Point (PEP) Per istruzioni, vedere Inviare i log ora con PowerShell.
Aprire i problemi di GitHub
Se non è possibile risolvere l'errore di distribuzione, è possibile aprire un problema di GitHub.
Aprire un problema di GitHub nel repository del motore del servizio Azure Kubernetes.
Aggiungere un titolo usando il formato seguente: Errore CSE:
exit code <INSERT_YOUR_EXIT_CODE>
.Includere le informazioni seguenti nel problema:
File di configurazione del cluster,
apimodel.json
, usato per distribuire il cluster. Rimuovere tutti i segreti e le chiavi prima di pubblicarlo in GitHub.Output del comando
get nodes
kubectl seguente.Contenuto di
/var/log/azure/cluster-provision.log
da un nodo non integro.
Passaggi successivi
- Informazioni sul motore del servizio Azure Kubernetes nell'hub di Azure Stack.