Risolvere i problemi comuni relativi all'host contenitore Linux di Azure per il servizio Azure Kubernetes
Questo articolo illustra la procedura di risoluzione dei problemi per alcuni dei problemi comunemente segnalati che potrebbero verificarsi quando si usano gli host contenitore Linux di Azure in servizio Azure Kubernetes (servizio Azure Kubernetes). Per altre informazioni su come iniziare a usare gli host contenitore Linux di Azure nel servizio Azure Kubernetes, vedere Usare Azure Linux con il servizio Azure Kubernetes.
Operazioni preliminari
Leggere la guida ufficiale per la risoluzione dei problemi dei cluster Kubernetes. Leggere anche la guida del tecnico Microsoft per la risoluzione dei problemi di Kubernetes. Questa guida contiene i comandi per la risoluzione dei problemi relativi a pod, nodi, cluster e altre funzionalità.
Esaminare infine l'elenco delle limitazioni note in Azure Linux. Un problema che si sta tentando di risolvere potrebbe essere quello su cui stiamo già lavorando.
Prerequisiti
- Interfaccia della riga di comando di Azure, versione 2.31 o successiva. Se l'interfaccia della riga di comando di Azure è già installata, è possibile trovare il numero di versione eseguendo
az --version
.
Informazioni sull'host contenitore Linux di Azure per il servizio Azure Kubernetes
Linux di Azure è una distribuzione Linux open source creata da Microsoft. Come sistema operativo leggero, Azure Linux offre le funzionalità seguenti:
- Contiene solo i pacchetti necessari per eseguire carichi di lavoro del contenitore
- Sottoposto a test di convalida di Azure
- Compatibile con gli agenti di Azure
L'host contenitore Linux di Azure per il servizio Azure Kubernetes è un'immagine del sistema operativo ottimizzata per l'esecuzione dei carichi di lavoro dei contenitori. Viene gestito da Microsoft e basato su Azure Linux. Offre affidabilità e coerenza dal cloud al perimetro attraverso il servizio Azure Kubernetes, il servizio Azure Kubernetes in Azure Stack HCI e i prodotti Azure Arc. È possibile usare gli host contenitore Linux di Azure per eseguire i processi seguenti:
- Distribuire pool di nodi Linux di Azure in un nuovo cluster.
- Aggiungere pool di nodi Linux di Azure ai cluster Ubuntu esistenti.
- Eseguire la migrazione dei nodi Ubuntu ai nodi Linux di Azure.
Per altre informazioni su Linux di Azure, vedere il repository GitHub linux di Azure .
Elenco di controllo per la risoluzione dei problemi
Passaggio 1: Esaminare i comandi equivalenti in Ubuntu e Azure Linux
La maggior parte dei comandi nel sistema operativo Linux di Azure, ad esempio il comando stato del processo (ps
), è simile ai comandi usati in Ubuntu. Tuttavia, la gestione dei pacchetti viene eseguita usando il comando Tiny DNF (tdnf
). La tabella seguente elenca alcuni comandi comuni in Ubuntu e i relativi equivalenti in Azure Linux.
Comando Ubuntu | Comando consigliato di Azure Linux |
---|---|
apt -- list installed |
rpm -qa |
apt autoclean |
tdnf clean all |
apt autoremove |
dnf autoremove |
apt dist-upgrade |
dnf distro-sync |
apt download |
tdnf download |
apt install |
tdnf install |
apt install --reinstall |
tdnf reinstall |
apt list - upgradable |
dnf list updates |
apt remove |
tdnf remove |
apt search |
tdnf search |
apt show |
tdnf list |
apt upgrade |
tdnf upgrade |
apt cache dump |
tdnf list available |
apt-cache dumpavail |
tdnf list available |
apt-cache policy |
tdnf list |
apt-cache rdepends |
dnf repoquery -- alldeps - whatrequires |
apt-cache search |
tdnf search |
apt-cache show |
tdnf info |
apt-cache stats |
(nessun equivalente esatto; leggere il File pacchetti nella cartella /var/lib/rpm ) |
apt-config shell |
dnf shell |
apt-file list |
dnf repoquery -l |
apt-file search |
tdnf provides |
apt-get autoremove |
dnf autoremove |
apt-get install |
tdnf install |
apt-get remove |
tdnf remove |
apt-get update |
dnf clean expire-cache dnf check-update |
apt-mark auto |
tdnf install dnf mark remove |
apt-mark manual |
dnf mark install |
apt-mark showmanual |
dnf history userinstalled |
Passaggio 2: Controllare la versione di Azure Linux
Assicurarsi di usare la versione corretta di Azure Linux. La versione supportata di Linux di Azure per l'utilizzo è Azure Linux 2.0. Nell'output del comando az aks nodepool list seguente, la osSKU
proprietà deve leggere AzureLinux
.
az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>
Anche se questo comando potrebbe non risolvere il problema riscontrato, il controllo delle versioni è un problema comune per gli utenti che segnalano che gli agenti o le estensioni non funzionano correttamente in Azure Linux.
Passaggio 3: Comprendere la differenza nei percorsi dei file di certificato
Azure Linux (e altre distribuzioni RPM) archivia i certificati in modo diverso da Ubuntu.
In Azure Linux il percorso /etc/ssl/certs è un collegamento simbolico a /etc/pki/tls/certs. Se un contenitore prevede di eseguire il mapping di /etc/ssl/certs per usare il file di certificato ca-certificates.crt in Azure Linux, il contenitore ottiene invece un collegamento simbolico che punta a nessuna posizione. Questo comportamento causa errori correlati al certificato nel contenitore. Il contenitore deve anche eseguire il mapping di /etc/pki in modo che il contenitore possa seguire la catena di collegamenti simbolici. Se il contenitore deve funzionare sia negli host Ubuntu che in Linux di Azure, è possibile eseguire il mapping di /etc/pki usando il DirectoryOrCreate
tipo in un volume hostPath.
Passaggio 4: Aggiornare l'interfaccia della riga di comando di Azure e l'estensione di anteprima del servizio Azure Kubernetes
Se si tenta di distribuire un cluster del servizio Azure Kubernetes Linux usando l'interfaccia della riga di comando di Azure, è possibile che venga visualizzato un messaggio di errore che indica che l'opzione AzureLinux
non è supportata per il OSSku
parametro . Questo messaggio significa che potrebbe essere in uso una versione obsoleta dell'interfaccia della riga di comando di Azure o l'estensione di anteprima del servizio Azure Kubernetes. Per risolvere questo problema, eseguire una o entrambe le due azioni seguenti:
Se l'interfaccia della riga di comando di Azure non è aggiornata, installare la versione più recente. Per aggiornare l'interfaccia della riga di comando di Azure, eseguire il comando az upgrade seguente:
az upgrade
Se è installata una versione precedente dell'estensione
aks-preview
, installare una versione più recente in modo che ilOSSku
parametro abbia il valoreAzureLinux
. Per aggiornare l'estensione, eseguire il comando az extension update seguente:az extension update --name aks-preview
Dichiarazione di non responsabilità sulle informazioni di terze parti
I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti
Dichiarazione di non responsabilità di contatti di terze parti
Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.
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.