Partager via


Résoudre les échecs « az aks command invoke »

Cet article explique comment résoudre les échecs d’appel de commande az aks dans Microsoft Azure CLI afin que vous puissiez vous connecter à n’importe quel cluster Azure Kubernetes Service (AKS), en particulier à un cluster AKS privé.

D’autres méthodes de connexion doivent utiliser des composants de configuration supplémentaires, comme indiqué dans le tableau suivant.

Méthodes de connexion Composant de configuration supplémentaire
Réseau virtuel Réseau privé virtuel (VPN)
Réseau appairé Azure ExpressRoute
Point de terminaison privé Jumpbox

La az aks command invoke commande Azure CLI est un autre moyen de se connecter à un cluster qui ne nécessite pas de composants de configuration supplémentaires.

Lorsque vous exécutez la az aks command invoke commande, Azure CLI crée automatiquement un command-<ID> pod dans l’espace aks-command de noms pour accéder au cluster AKS et récupérer les informations requises.

Conditions préalables

Symptômes

Le tableau suivant répertorie les messages d’erreur courants az aks command invoke . Chaque message d’erreur a un lien vers la section qui décrit pourquoi l’erreur se produit et comment la corriger.

Message d’erreur Liens
L’opération a retourné un status 'Introuvable' non valide Cause 1 : Impossible de créer le pod en raison de contraintes de nœud ou de ressources
Échec de l’exécution de la commande dans le cluster managé en raison d’une défaillance de Kubernetes. détails : le webhook d’admission « validation.gatekeeper.sh » a refusé la demande : <message spécifique à la stratégie> Cause 2 : Azure Policy n’autorise pas la création du pod
Erreur du serveur (Interdit) : les espaces de noms sont interdits : « ID> » de l’utilisateur< ne peut pas répertorier la ressource «< ressource> » dans le groupe d’API « » au niveau de l’étendue du cluster Cause 3 : Les rôles requis ne sont pas accordés
Échec de la connexion à MSI. Vérifiez que MSI est correctement configuré.

Obtenir la demande de jeton retournée : Réponse [400] ;
Cause 4 : Problème de Cloud Shell

Cause 1 : Impossible de créer le pod en raison de contraintes de nœud ou de ressources

L’opération retourne un Not Found status, car le command-<ID> pod ne peut pas atteindre un état réussi, tel que Running. (Dans de nombreux cas, le pod reste à l’état Pending .) Dans ce cas, les nœuds ne sont pas en mesure de planifier le pod. Ce scénario peut avoir différentes causes, telles que les causes suivantes :

  • Contraintes de ressources
  • Nœuds dont l’état NotReady est ou SchedulingDisabled
  • Nœuds qui ont des teintes que le pod ne peut pas tolérer
  • Autres causes

Solution 1 : Modifier la configuration afin de pouvoir planifier et exécuter le pod

Assurez-vous que le command-<ID> pod peut être planifié et exécuté.

Cause 2 : Azure Policy n’autorise pas la création du pod

Si vous avez des stratégies Azure spécifiques, la az aks command invoke commande peut échouer en raison d’une configuration non autorisée dans le command-<ID> pod. Par exemple, vous pouvez avoir une stratégie Azure qui nécessite un système de fichiers racine en lecture seule ou une autre configuration spécifique.

Solution 2 : Exempter l’espace de noms des stratégies qui interdisent la création de pods

Nous vous recommandons d’exempter l’espace aks-command de noms pour les stratégies Azure associées qui n’autorisent pas la création de pods. Pour plus d’informations sur l’exemption, consultez Comprendre l’étendue dans Azure Policy

Pour exempter un Azure Policy :

  1. Dans la Portail Azure, recherchez et sélectionnez Stratégie.

  2. Dans le volet de navigation Stratégie , recherchez la section Création , puis sélectionnez Affectations.

  3. Dans la table des affectations, recherchez la ligne qui contient le nom de l’affectation que vous souhaitez modifier, puis sélectionnez le nom de l’affectation.

  4. Dans la page d’attribution de stratégie pour cette affectation, sélectionnez Modifier l’affectation.

  5. Sélectionnez l’onglet Paramètres .

  6. Désactivez l’option Afficher uniquement les paramètres qui nécessitent une entrée ou une révision .

  7. Dans la zone Exclusions d’espace de noms, ajoutez l’espace de noms aks-command à la liste des espaces de noms à exclure.

Sinon, si la stratégie n’est pas une stratégie intégrée, vous pouvez case activée la configuration du command-<ID> pod et ajuster la stratégie si nécessaire. Pour explorer la configuration YAML du pod, exécutez la commande suivante :

kubectl get pods command-<ID> --namespace aks-command --output yaml

Cause 3 : Les rôles requis ne sont pas accordés

Pour utiliser la az aks command invoke commande , vous devez avoir accès aux rôles suivants sur le cluster :

  • Microsoft.ContainerService/managedClusters/runCommand/action
  • Microsoft.ContainerService/managedClusters/commandResults/read

Si vous n’avez pas ces rôles, la az aks command invoke commande ne peut pas récupérer les informations requises.

Solution 3 : Ajouter les rôles requis

Ajoutez les Microsoft.ContainerService/managedClusters/runCommand/action rôles et Microsoft.ContainerService/managedClusters/commandResults/read .

Cause 4 : Problème de Cloud Shell

La az aks command invoke commande n’est pas traitée comme prévu lorsqu’elle est exécutée directement dans l’environnement Azure Cloud Shell. Il s’agit d’un problème connu dans Cloud Shell.

Solution 4a : Exécuter d’abord la commande az login

Dans Cloud Shell, exécutez la commande az login avant d’exécuter az aks command invoke.

Solution 4b : Exécuter la commande sur un ordinateur local ou une machine virtuelle

Exécutez la az aks command invoke commande sur un ordinateur local ou sur une machine virtuelle sur laquelle Azure CLI est installé.

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.

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.