Résoudre le code d’erreur OutboundConnFailVMExtensionError (50)
Cet article explique comment identifier et résoudre l’erreur OutboundConnFailVMExtensionError
(également appelée code ERR_OUTBOUND_CONN_FAIL
d’erreur , numéro d’erreur 50) qui peut se produire si vous essayez de démarrer ou de créer et de déployer un cluster Microsoft Azure Kubernetes Service (AKS).
Prerequisites
Outil en ligne de commande Netcat (nc)
Outil en ligne de commande dig
Outil cURL (Client URL)
Symptômes
Quand vous essayez de lancer ou supprimer un cluster AKS, vous recevez le message d’erreur suivant :
Impossible d’établir une connexion sortante à partir d’agents, consultez https://aka.ms/aks-required-ports-and-addresses pour plus d’informations.
Détails : Code="VMExtensionProvisioningError »
Message= » 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\n[stdout]\n\n[stderr]\nnc : connexion mcr.microsoft.com au port 443 (tcp) a échoué : délai d’attente de connexion\nCommand quitté avec un état non nul
Détails de l’erreur : « messages d’erreur vmssCSE : {vmssCSE exit status=50, output=pt/apt.conf.d/95proxy...}
Cause
L’extension de script personnalisé qui télécharge les composants nécessaires pour approvisionner les nœuds n’a pas pu établir la connectivité sortante nécessaire pour obtenir des packages. Pour les clusters publics, les nœuds tentent de communiquer avec le point de terminaison Microsoft Container Registry (mcr.microsoft.com
MCR) sur le port 443.
Il existe de nombreuses raisons pour lesquelles le trafic peut être bloqué. Dans l’une de ces situations, la meilleure façon de tester la connectivité consiste à utiliser le protocole SSH (Secure Shell) pour se connecter au nœud. Pour établir la connexion, suivez les instructions de connexion aux nœuds de cluster Azure Kubernetes Service (AKS) pour la maintenance ou la résolution des problèmes. Ensuite, testez la connectivité sur le cluster en procédant comme suit :
Après vous être connecté au nœud, exécutez les
nc
commandes etdig
les commandes :nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443
Note
Si vous ne pouvez pas accéder au nœud via SSH, vous pouvez tester la connectivité sortante en exécutant la commande az vmss run-command invoke sur l’instance virtual Machine Scale Set :
# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test outbound connectivity. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "nc -vz mcr.microsoft.com 443"
Si vous essayez de créer un cluster AKS à l’aide d’un proxy HTTP, exécutez les commandes et
curl
dig
lesnc
commandes après vous être connecté au nœud :# Test connectivity to the HTTP proxy server from the AKS node. nc -vz <http-s-proxy-address> <port> # Test traffic from the HTTP proxy server to HTTPS. curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test traffic from the HTTPS proxy server to HTTPS. curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com # Test DNS functionality. dig mcr.microsoft.com 443
Note
Si vous ne pouvez pas accéder au nœud via SSH, vous pouvez tester la connectivité sortante en exécutant la
az vmss run-command invoke
commande sur l’instance du groupe de machines virtuelles identiques :# Get the VMSS instance IDs. az vmss list-instances --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --output table # Use an instance ID to test connectivity from the HTTP proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy http://<http-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test connectivity from the HTTPS proxy server to HTTPS. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "curl --proxy https://<https-proxy-address>:<port>/ --head https://mcr.microsoft.com" # Use an instance ID to test DNS functionality. az vmss run-command invoke --resource-group <mc-resource-group-name> \ --name <vmss-name> \ --command-id RunShellScript \ --instance-id <vmss-instance-id> \ --output json \ --scripts "dig mcr.microsoft.com 443"
Solution
Le tableau suivant répertorie des raisons spécifiques pour lesquelles le trafic peut être bloqué et la solution correspondante pour chaque raison.
| Problème | Solution | | ----- | -------- | | Le trafic est bloqué par des règles de pare-feu ou un serveur proxy | Dans ce scénario, un pare-feu ou un serveur proxy effectue un filtrage de sortie. Pour vérifier que tous les domaines et ports requis sont autorisés, consultez Contrôler le trafic de sortie pour les nœuds de cluster dans Azure Kubernetes Service (AKS). | | Le trafic est bloqué par un groupe de sécurité réseau de cluster (NSG) | Sur tous les groupes de sécurité réseau attachés à votre cluster, vérifiez qu’il n’existe aucun blocage sur le port 443, le port 53 ou tout autre port pouvant être utilisé pour se connecter au point de terminaison. Pour plus d’informations, consultez Contrôler le trafic de sortie pour les nœuds de cluster dans Azure Kubernetes Service (AKS). | | L’enregistrement AAAA (IPv6) est bloqué sur le pare-feu | Sur votre pare-feu, vérifiez qu’il n’existe rien qui empêche la résolution du point de terminaison dans Azure DNS. | | Le cluster privé ne peut pas résoudre les ressources Azure internes | Dans les clusters privés, l’adresse IP Azure DNS (168.63.129.16
) doit être ajoutée en tant que serveur DNS en amont si le DNS personnalisé est utilisé. Vérifiez que l’adresse est définie sur vos serveurs DNS. Pour plus d’informations, consultez Créer un cluster AKS privé et Qu’est-ce que l’adresse IP 168.63.129.16 ? |
Plus d’informations
Exclusion de responsabilité sur les coordonnées externes
Microsoft fournit des informations de contacts externes afin de vous aider à obtenir un support technique sur ce sujet. Ces informations de contact peuvent changer sans préavis. Microsoft ne garantit pas l’exactitude des informations concernant les sociétés externes.
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.