Résoudre les problèmes courants liés à l’hôte de conteneur Linux Azure pour AKS
Cet article fournit des étapes de dépannage pour certains des problèmes couramment signalés que vous pouvez rencontrer lorsque vous utilisez des hôtes de conteneur Linux Azure dans Azure Kubernetes Service (AKS). Pour plus d’informations sur la prise en main des hôtes de conteneur Linux Azure dans AKS, consultez Utiliser Azure Linux avec AKS.
Avant de commencer
Lisez le guide officiel pour résoudre les problèmes des clusters Kubernetes. Lisez également le guide de l’ingénieur Microsoft pour résoudre les problèmes liés à Kubernetes. Ce guide contient des commandes pour la résolution des problèmes de pods, de nœuds, de clusters et d’autres fonctionnalités.
Enfin, passez en revue la liste des limitations connues dans Azure Linux. Un problème que vous essayez de résoudre peut être celui sur lequel nous travaillons déjà.
Prerequisites
- Azure CLI, version 2.31 ou ultérieure. Si Azure CLI est déjà installé, vous pouvez trouver le numéro de version en exécutant
az --version
.
À propos de l’hôte de conteneur Azure Linux pour AKS
Azure Linux est une distribution Linux open source que Microsoft a créée. En tant que système d’exploitation léger, Azure Linux dispose des fonctionnalités suivantes :
- Contient uniquement les packages nécessaires pour exécuter des charges de travail de conteneur
- Subit des tests de validation Azure
- Est compatible avec les agents Azure
Azure Linux Container Host pour AKS est une image de système d’exploitation pour AKS optimisée pour l’exécution de charges de travail de conteneur. Il est géré par Microsoft et basé sur Azure Linux. Il offre une fiabilité et une cohérence du cloud à la périphérie sur les produits AKS, AKS sur Azure Stack HCI et Azure Arc. Vous pouvez utiliser des hôtes de conteneur Linux Azure pour effectuer les processus suivants :
- Déployez des pools de nœuds Linux Azure dans un nouveau cluster.
- Ajoutez des pools de nœuds Linux Azure à vos clusters Ubuntu existants.
- Migrez vos nœuds Ubuntu vers des nœuds Linux Azure.
Pour plus d’informations sur Azure Linux, consultez le référentiel GitHub Linux Azure.
Liste de contrôle pour la résolution des problèmes
Étape 1 : Passer en revue les commandes équivalentes dans Ubuntu et Azure Linux
La plupart des commandes du système d’exploitation Linux Azure, telles que la commande d’état du processus (ps
), ressemblent aux commandes utilisées dans Ubuntu. Toutefois, la gestion des packages est effectuée à l’aide de la commande Tiny DNF (tdnf
). Le tableau suivant répertorie certaines commandes courantes dans Ubuntu et leurs équivalents dans Azure Linux.
Commande Ubuntu | Commande Azure Linux suggérée |
---|---|
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 |
(pas d’équivalent exact ; lire le Fichier packages dans le dossier /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 |
Étape 2 : Vérifier la version d’Azure Linux
Vérifiez que vous utilisez la version correcte d’Azure Linux. La version prise en charge d’Azure Linux pour la consommation est Azure Linux 2.0. Dans la sortie de la commande az aks nodepool list suivante, la osSKU
propriété doit lire AzureLinux
.
az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>
Bien que cette commande ne résolve pas le problème que vous rencontrez, le contrôle de version est un problème courant pour les utilisateurs qui signalent que les agents ou les extensions ne fonctionnent pas correctement sur Azure Linux.
Étape 3 : Comprendre la différence dans les chemins d’accès aux fichiers de certificat
Azure Linux (et d’autres distributions RPM) stockent les certificats différemment d’Ubuntu.
Sur Azure Linux, le chemin /etc/ssl/certs est un lien symbolique vers /etc/pki/tls/certs. Si un conteneur s’attend à mapper /etc/ssl/certs pour utiliser le fichier de certificat ca-certificates.crt sur Azure Linux, le conteneur obtient plutôt un lien symbolique qui pointe vers nulle part. Ce comportement provoque des erreurs liées au certificat dans le conteneur. Le conteneur doit également mapper /etc/pki afin que le conteneur puisse suivre la chaîne de liens symbolique. Si le conteneur doit fonctionner sur les hôtes Ubuntu et Linux Azure, vous pouvez mapper /etc/pki à l’aide du DirectoryOrCreate
type dans un volume hostPath.
Étape 4 : Mettre à jour Azure CLI et l’extension akS en préversion
Si vous essayez de déployer un cluster AKS Linux Azure à l’aide d’Azure CLI, vous pouvez recevoir un message d’erreur indiquant que l’option AzureLinux
n’est pas prise en charge pour le OSSku
paramètre. Ce message signifie que vous utilisez peut-être une version obsolète d’Azure CLI ou de l’extension akS en préversion. Pour résoudre ce problème, effectuez une ou les deux actions suivantes :
Si Azure CLI n’est pas à jour, installez la dernière version. Pour mettre à niveau Azure CLI, exécutez la commande az upgrade suivante :
az upgrade
Si vous disposez d’une version antérieure de l’extension
aks-preview
installée, installez une version plus récente afin que leOSSku
paramètre ait la valeurAzureLinux
. Pour mettre à niveau l’extension, exécutez la commande az extension update suivante :az extension update --name aks-preview
Exclusion de responsabilité de tiers
Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.
Exclusion de responsabilité sur les coordonnées externes
Microsoft fournit des informations de contacts externes afin de vous aider à obtenir un support technique sur ce sujet. Ces informations de contact peuvent changer sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés externes.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.