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

Cet article décrit les méthodes de résolution des problèmes de base à utiliser si vous ne parvenez pas à démarrer un cluster Microsoft Azure Kubernetes Service (AKS).

Conditions préalables

Afficher les erreurs à partir d’Azure CLI

Lorsque vous démarrez des clusters à l’aide d’Azure CLI, les erreurs sont enregistrées en tant que sortie en cas d’échec de l’opération. 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 produit 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 résolution des problèmes 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 des erreurs dans le Portail Azure, examinez le journal d’activité Azure. Pour trouver la liste des journaux d’activité dans le Portail Azure, recherchez dans journal d’activité. Vous pouvez également sélectionner Notifications (l’icône en forme de cloche), puis sélectionner Plus d’événements dans le journal d’activité.

La liste des journaux de 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é. La valeur de colonne Événement initié par l’événement correspondant est définie 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 le cluster managé affiche Échec. Contrairement aux opérations de création de 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-fonctionnement. Les noms de sous-opérations 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 pour vous permettre de consulter plus d’informations sur la sous-opération. Vous pouvez résoudre les problèmes de valeurs pour des 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-opération d’un journal d’activité de cluster AKS montrant la raison de l’échec d’une opération de démarrage.

Afficher les insights de cluster

Vous pouvez également générer des insights de 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 la 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 Cluster Insights 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 souhaiterez peut-être 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 du groupe de ressources MC_ . Cette action peut entraîner des effets indésirables sur votre cluster AKS.

Pour passer en revue les status 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 de Groupe de machines virtuelles identiques. La status du groupe identique s’affiche en haut de la page Vue d’ensemble du pool de nœuds, et plus de détails sont affichés dans le titre Essentials. Si le déploiement a échoué, le status affiché est Échec.

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 Échec status pour afficher les détails de l’échec. Les détails se trouvent dans une ligne qui contient les colonnes État, Niveau et Code . L’exemple suivant montre une ligne de valeurs de colonne.

Column Exemple de valeur
Statut Échec de l’approvisionnement
Niveau Erreur
Code ProvisioningState/failed/VMExtensionProvisioningError

Sélectionnez la ligne pour afficher le champ Message . Il contient encore plus d’informations sur cet échec. 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 terminée avec exit status=50 [stdout] [stdout] [stderr] 0 0 -- : Avec ces informations, vous pouvez conclure que les machines virtuelles du groupe identique ont échoué et généré une sortie status 50.

Utiliser les 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, commencez par vous connecter à votre cluster AKS :

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

Selon le type de défaillance et le moment où elle s’est produite, vous ne pourrez peut-être pas vous connecter à votre cluster pour obtenir plus de détails. Mais 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 (nœuds kubectl get)

Pour obtenir plus de détails afin de 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 les status des pods système Kubernetes. Dans cet exemple, nous entrons 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 la status d’un pod (kubectl describe pod)

En décrivant les status des pods, vous pouvez afficher les détails de 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.