Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 :
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.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)
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
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.
Si le problème est lié au délai d’expiration de la connexion IMDS, envoyez un ticket de support.
Réconciliez le cluster si les opérations précédentes sont terminées.
références
Résolution générale des problèmes de création de cluster AKS
identité managée pour l'authentification du registre de conteneurs
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.