Résoudre les problèmes liés au 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).
Conditions préalables
L’outil en ligne de commande Netcat (nc)
L’outil en ligne de commande dig
Outil URL du client (cURL)
Symptômes
Lorsque vous essayez de démarrer ou de créer un cluster AKS, le message d’erreur suivant s’affiche :
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="Vm 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 sortie status=50\n[stdout]\n\n[stderr]\nnc : connexion à mcr.microsoft.com port 443 (tcp) a échoué : délai de connexion expiré\nLa commande s’est arrêtée avec un status 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 provisionner 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) (mcr.microsoft.com
) 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 SECURE Shell (SSH) pour se connecter au nœud. Pour établir la connexion, suivez les instructions fournies dans Se connecter à des nœuds de cluster Azure Kubernetes Service (AKS) à des fins de maintenance ou de 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
:nc -vz mcr.microsoft.com 443 dig mcr.microsoft.com 443
Remarque
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 le groupe de machines virtuelles identiques instance :
# 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
nc
commandes ,curl
etdig
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
Remarque
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 le groupe de machines virtuelles identiques instance :# 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 les 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 le point de terminaison de se résoudre 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 amont si un 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 ? |
Informations supplémentaires
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 être modifiées 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.