Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È 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 di AKS engine. Raccogliere informazioni sul motore AKS, raccogliere i log di Kubernetes ed esaminare i codici di errore dell'estensione dello script personalizzato. È anche possibile aprire una segnalazione su GitHub per il motore AKS.
Annotazioni
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 AKS
Se i passaggi di installazione precedenti non sono riusciti, è possibile installare AKS Engine usando il gestore di pacchetti GoFish. GoFish si descrive come un Homebrew multipiattaforma.
È possibile trovare le istruzioni per l'uso di GoFish per installare AKS engine qui.
Raccogliere i log del nodo e del cluster
È possibile trovare le istruzioni per la raccolta di log di nodi e cluster in Recupero di log di nodi e cluster.
Prerequisiti
Questa guida presuppone che abbiate già scaricato l'interfaccia della riga di comando di Azure CLI e il motore AKS.
Questa guida presuppone anche che sia stato distribuito un cluster utilizzando AKS Engine. Per ulteriori informazioni, vedere Distribuire un cluster Kubernetes con AKS engine su Azure Stack Hub.
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 la configurazione dei 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 scaricando il file .ZIP nel computer locale.
Autenticazione SSH
È necessaria una chiave privata SSH valida per stabilire una sessione SSH per i nodi Linux del cluster. 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 Windows.
Caricare i log in un contenitore di archiviazione dell'account
Dopo aver recuperato correttamente i log del cluster, AKS Engine può salvarli in un contenitore dell'account di archiviazione Azure se è impostato un parametro facoltativo --upload-sas-url. AKS Engine si aspetta che il nome del contenitore sia parte dell'URL SAS fornito. Il formato previsto è https://{blob-service-uri}/{container-name}?{sas-token}.
Annotazioni
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 i get-logs del motore del servizio Azure Kubernetes
Supponendo che sia stato distribuito un cluster e che il modello API usato originariamente per distribuire il cluster sia archiviato in _output/<dnsPrefix>/apimodel.json, è 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 |
|---|---|---|
| --ubicazione | 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 | Raccogliere i log solo dai nodi del piano di controllo. |
| --vm-names | NO | Raccogliere solo i log dalle macchine virtuali specificate (nomi delimitati da virgole). |
| --upload-sas-url | NO | URL SAS dell'account di archiviazione di Azure per caricare i log raccolti. |
Esaminare i codici di errore dell'estensione dello script personalizzato
Il motore AKS genera uno script per ogni server Ubuntu come risorsa per l'estensione dello script personalizzato per eseguire le 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 la raccolta e l'analisi dei 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 hub di Azure Stack. L'operatore usa le informazioni dai 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 della 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> - Gli operatori cloud possono:
- 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 con il portale di amministrazione.
- Utilizzare il cmdlet Get-AzureStackLog di PowerShell usando il Punto finale privilegiato (PEP). Per istruzioni, consultare 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 issue di GitHub nel repository di motore AKS.
Aggiungere un titolo usando il formato seguente: Errore CSE:
exit code <INSERT_YOUR_EXIT_CODE>.Includere le seguenti informazioni nella segnalazione:
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 seguente comando kubectl
get nodes.Contenuto di
/var/log/azure/cluster-provision.logda un nodo non integro.
Passaggi successivi
- Scopri il motore AKS su Azure Stack Hub.