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
Azure CLI (version 2.0.59 ou ultérieure).
Outil Kubernetes kubectl . Pour installer kubectl à l’aide d’Azure CLI, exécutez la commande az aks install-cli .
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é.
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.
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 :
Dans le Portail Azure, recherchez et sélectionnez services Kubernetes.
Sélectionnez le nom de votre cluster AKS.
Dans le volet de navigation de la page du cluster AKS, sélectionnez Diagnostiquer et résoudre les problèmes.
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.
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.