Partager via


Code d’erreur OrasPullUnauthorizedVMExtensionError (212) lors du déploiement d’un cluster AKS

Cet article explique comment identifier et résoudre l’erreur OrasPullUnauthorizedVMExtensionError (code d’erreur 212) qui se produit lorsque vous essayez de créer et de déployer un cluster Microsoft Azure Kubernetes Service (AKS).

Symptômes

Lorsque vous essayez de créer un cluster AKS avec le type none sortant ou block, vous recevez le message d’erreur suivant :

VMExtensionProvisioningError : 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 l’état de sortie=212

Échec de l'autorisation du Bootstrap Container Registry. Vérifiez que l’identité kubelet dispose d’un accès par extraction au Registre.

La cause

Pour le cluster isolé réseau, le trafic de sortie est limité. La fonctionnalité introduit un cache privé du registre de conteneurs Azure (ACR) qui agit en tant que proxy pour télécharger les binaires ou les images nécessaires à partir de Microsoft Artifact Registry (MAR) pour le démarrage AKS. Il est suggéré de désactiver l’accès anonyme à l’ACR. Le nœud AKS utilise l’identité kubelet pour accéder à l’ACR. Si l’autorisation acrpull n’est pas définie correctement ou si l’identité kubelet n’est pas liée à l’instance de machine virtuelle, une erreur non autorisée se produit.

Solution

Pour résoudre ce problème, effectuez les étapes suivantes :

  1. Accédez à l’instance de machine virtuelle à l’aide de Secure Shell (SSH) pour obtenir le fichier journal/var/log/azure/cluster-provision.log. Passez en revue le journal pour déterminer si le problème est lié à une erreur 401, au délai d’expiration de la connexion IMDS (Azure Instance Metadata Service) ou à une identité introuvable avec le code HTTP 400.

  2. Récupérez l’ID de ressource ACR que AKS utilise comme ACR de démarrage en exécutant la commande suivante :

    export REGISTRY_ID=$(az aks show -g ${RESOURCE_GROUP} -n ${CLUSTER_NAME} --query 'bootstrapProfile.containerRegistryId' -o tsv)
    
  3. Si le problème est lié à une erreur 401, vérifiez si l’identité kubelet a l’autorisation acrpull de l’ACR en exécutant la commande suivante :

    export KUBELET_IDENTITY_PRINCIPAL_ID=$(az aks show -g ${RESOURCE_GROUP} -n ${CLUSTER_NAME} --query 'identityProfile.kubeletidentity.clientId' -o tsv)
    

    Si ce n’est pas le cas, exécutez la commande suivante :

    az role assignment create --role AcrPull --scope ${REGISTRY_ID} --assignee-object-id ${KUBELET_IDENTITY_PRINCIPAL_ID} --assignee-principal-type ServicePrincipal
    
  4. Si l’erreur de journal indique que l’identité est introuvable, liez manuellement l’identité kubelet à l'Ensemble de Machines Virtuelles (VMSS) pour une solution rapide.

  5. Si le problème est lié au délai d’expiration de la connexion IMDS, envoyez un ticket de support.

  6. Réconciliez le cluster si les opérations précédentes sont terminées.

références

Contactez-nous pour obtenir de l’aide

Si vous avez des questions ou avez besoin d’aide, créez une demande de support ou demandez le support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.