Partager via


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 le OSSku paramètre ait la valeur AzureLinux. 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.