Résolution de base des problèmes de démarrage des groupements AKS

Cet article décrit les méthodes de dépannage de base à utiliser si vous ne pouvez pas démarrer un cluster Microsoft Azure Kubernetes Service (AKS) avec succès.

Prerequisites

Afficher les erreurs à partir d’Azure CLI

Lorsque vous démarrez des clusters à l’aide d’Azure CLI, les erreurs sont enregistrées en sortie si l’opération échoue. Voici comment une commande, une entrée utilisateur et une sortie d’opération peuvent apparaître dans une Bash console :

$ az aks start --resource-group myResourceGroup --name MyManagedCluster

(VMExtensionProvisioningError) Unable to establish outbound connection from agents, please see https://video2.skills-academy.com/en-us/troubleshoot/azure/azure-kubernetes/error-code-outboundconnfailvmextensionerror and https://aka.ms/aks-required-ports-and-addresses for more information.  
Details: instance 3 has extension error details : {vmssCSE error messages : {vmssCSE exit status=50, output=AGE_SHA=sha-16fd35

Ces erreurs contiennent souvent des descriptions détaillées de ce qui s’est passé dans l’opération de démarrage du cluster et fournissent des liens vers des articles qui contiennent plus de détails. En outre, vous pouvez utiliser nos articles de dépannage comme référence en fonction de l’erreur générée par une opération Azure CLI.

Afficher les détails de l’erreur dans le Portail Azure

Pour afficher les détails sur les erreurs dans le Portail Azure, examinez le journal d’activité Azure. Pour rechercher la liste des journaux d’activité dans le Portail Azure, recherchez dans le journal d’activité. Vous pouvez également sélectionner Notifications (icône en forme de cloche), puis sélectionner Plus d’événements dans le journal d’activité.

La liste des journaux d’activité sur la page journal d’activité contient une entrée de ligne dans laquelle la valeur de colonne Nom de l’opération est nommée Démarrer le cluster managé. L’événement correspondant initié par la valeur de colonne est défini sur le nom de votre compte professionnel ou scolaire. Si l’opération réussit, la valeur de la colonne État indique Accepté.

Capture d’écran d’un panneau du journal d’activité du cluster AKS montrant une opération de démarrage ayant échoué.

Que se passe-t-il si une erreur s’est produite à la place ? Dans ce cas, le champ État de l’opération Démarrer un cluster managé affiche Échec. Contrairement aux opérations permettant de créer des composants de cluster, vous devez ici développer l’entrée d’opération ayant échoué pour passer en revue les entrées de sous-opération. Les noms de sous-opération classiques sont des actions de stratégie, telles que l’action de stratégie « audit » et l’action de stratégie « auditIfNotExists ». Certaines sous-opérations continueront de montrer qu’elles ont réussi.

Pour approfondir l’examen, vous pouvez sélectionner l’une des sous-opérations ayant échoué. Un volet latéral s’ouvre afin de pouvoir consulter plus d’informations sur la sous-opération. Vous pouvez résoudre les problèmes de valeurs pour les champs tels que Résumé, JSON et Historique des modifications. Le champ JSON contient le texte de sortie de l’erreur au format JSON et fournit généralement les informations les plus utiles.

Capture d’écran d’un volet latéral de sous-fonctionnement d’un journal d’activité de cluster AKS montrant pourquoi une opération de démarrage a échoué.

Afficher les insights de cluster

Vous pouvez également générer des insights sur le cluster pour vous aider à résoudre les problèmes via le panneau Diagnostiquer et résoudre les problèmes dans le Portail Azure. Pour accéder à cette fonctionnalité, procédez comme suit :

  1. Dans le Portail Azure, recherchez et sélectionnez services Kubernetes.

  2. Sélectionnez le nom de votre cluster AKS.

  3. Dans le volet de navigation de la page du cluster AKS, sélectionnez Diagnostiquer et résoudre les problèmes.

  4. Dans la page Diagnostiquer et résoudre les problèmes , sélectionnez le lien Cluster Insights . L’outil d’insights de cluster analyse votre cluster, puis fournit une liste de ses résultats dans la section Observations et Solutions de la page Insights du cluster.

  5. Sélectionnez l’une des conclusions pour afficher plus d’informations sur un problème et ses solutions possibles.

Afficher les ressources dans le Portail Azure

Dans le Portail Azure, vous pouvez afficher les ressources qui ont été créées lors de la génération du cluster. En règle générale, ces ressources se trouvent dans un groupe de ressources qui commence par MC_. Le groupe de ressources de cluster managé peut avoir un nom tel que MC_MyResourceGroup_MyManagedCluster_location-code>.< Toutefois, le nom peut être différent si vous avez créé le cluster à l’aide d’un groupe de ressources de cluster managé personnalisé.

Pour rechercher le groupe de ressources, recherchez et sélectionnez Groupes de ressources dans le Portail Azure, puis sélectionnez le groupe de ressources dans lequel le cluster a été créé. La liste des ressources s’affiche dans la page Vue d’ensemble du groupe de ressources.

Avertissement

Nous vous recommandons de ne pas modifier les ressources dans le groupe de ressources MC_ . Cette action peut entraîner des effets indésirables sur votre cluster AKS.

Pour passer en revue l’état d’un groupe de machines virtuelles identiques, vous pouvez sélectionner le nom du groupe identique dans la liste des ressources du groupe de ressources. Il peut avoir un nom similaire à aks-nodepool1-12345678-vmss et une valeur type du groupe de machines virtuelles identiques. L’état du groupe identique apparaît en haut de la page Vue d’ensemble du pool de nœuds, et d’autres détails sont affichés dans le titre Essentials. Si le déploiement a échoué, l’état affiché a échoué.

Pour toutes les ressources, vous pouvez consulter les détails pour mieux comprendre pourquoi le déploiement a échoué. Pour un groupe identique, vous pouvez sélectionner le texte d’état Échec pour afficher les détails de l’échec. Les détails se trouvent dans une ligne qui contient les colonnes Status, Level et Code . L’exemple suivant montre une ligne de valeurs de colonne.

Colonne Valeur d’exemple
État Échec de l’approvisionnement
Level Error
Code ProvisioningState/failed/VMExtensionProvisioningError

Sélectionnez la ligne pour afficher le champ Message . Cela contient encore plus d’informations sur cette défaillance. Par exemple, le champ Message de l’exemple de ligne commence par le texte suivant :

La machine virtuelle a signalé un échec lors du traitement de l’extension « vmssCSE ». Message d’erreur : « Échec de l’activation : échec de l’exécution de la commande : la commande s’est arrêtée avec exit status=50 [stdout] [stderr] 0 0 0 -- : Armé de ces informations, vous pouvez conclure que les machines virtuelles du groupe identique ont échoué et généré l’état de sortie 50.

Utiliser des commandes Kubectl

Pour obtenir une autre option permettant de résoudre les erreurs sur votre cluster, entrez les commandes kubectl pour obtenir des détails sur les ressources déployées dans le cluster. Pour utiliser kubectl, connectez-vous d’abord à votre cluster AKS :

az aks get-credentials --resource-group MyResourceGroup --name MyManagedCluster

En fonction du type d’échec et du moment où il s’est produit, il se peut que vous ne puissiez pas vous connecter à votre cluster pour obtenir plus de détails. Toutefois, en général, si votre cluster a été créé et s’affiche dans le Portail Azure, vous devez être en mesure de vous connecter et d’exécuter des commandes kubectl.

Afficher les nœuds de cluster (kubectl get nodes)

Pour obtenir plus de détails pour déterminer l’état des nœuds, affichez les nœuds de cluster en entrant la commande kubectl get nodes. Dans cet exemple, aucun nœud ne signale dans le cluster :

$ kubectl get nodes

No resources found

Afficher les pods dans l’espace de noms système (kubectl get pods)

L’affichage des pods dans l’espace de noms kube-system est également un bon moyen de résoudre votre problème. Cette méthode vous permet d’afficher l’état des pods système Kubernetes. Dans cet exemple, nous entrez la kubectl get pods commande :

$ kubectl get pods -n kube-system
NAME                                  READY   STATUS    RESTARTS   AGE
coredns-845757d86-7xjqb               0/1     Pending   0          78m
coredns-autoscaler-5f85dc856b-mxkrj   0/1     Pending   0          77m
konnectivity-agent-67f7f5554f-nsw2g   0/1     Pending   0          77m
konnectivity-agent-8686cb54fd-xlsgk   0/1     Pending   0          65m
metrics-server-6bc97b47f7-dfhbr       0/1     Pending   0          77m

Décrire l’état d’un pod (kubectl décrire le pod)

En décrivant l’état des pods, vous pouvez afficher les détails de la configuration et tous les événements qui se sont produits sur les pods. Exécutez la commande kubectl describe pod :

$ kubectl describe pod coredns-845757d86-7xjqb -n kube-system
Name:                 coredns-845757d86-7xjqb
Namespace:            kube-system
Priority:             2000001000
Priority Class Name:  system-node-critical
Node:                 <none>
Labels:               k8s-app=kube-dns
                      kubernetes.io/cluster-service=true
                      pod-template-hash=845757d86
                      version=v20
...
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  24m (x1 over 25m)   default-scheduler  no nodes available to schedule pods
  Warning  FailedScheduling  29m (x57 over 84m)  default-scheduler  no nodes available to schedule pods

Dans la sortie de commande, vous pouvez voir que le pod ne peut pas être déployé sur un nœud, car aucun nœud n’est disponible.

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.