Résoudre les problèmes de connexion à des points de terminaison en dehors du réseau virtuel
Cet article explique comment résoudre les problèmes de connexion aux points de terminaison en dehors du réseau virtuel (c’est-à-dire via l’Internet public) à partir d’un cluster Microsoft Azure Kubernetes Service (AKS).
Prerequisites
Outil URL du client (curl).
L’outil Kubernetes kubectl ou un outil similaire pour se connecter au cluster. Pour installer kubectl à l’aide d’Azure CLI, exécutez la commande az aks install-cli .
Liste de contrôle pour la résolution des problèmes
Le problème persiste-t-il ?
Étape 1 : Résoudre les problèmes de base
Assurez-vous que vous pouvez vous connecter aux points de terminaison publics sur Internet. Pour obtenir des instructions, consultez La résolution des problèmes de base des connexions de cluster AKS sortantes.
Étape 2 : Déterminer le type sortant du cluster AKS
Pour identifier le type sortant du cluster AKS, exécutez la commande az aks show :
az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"
Si le type sortant est loadBalancer
, il n’existe aucune table de routage, sauf si vous utilisez le réseau kubenet . Si vous utilisez kubenet, vérifiez que la table de routage par défaut n’a aucune configuration supplémentaire qui bloque la connexion Internet sortante. Si vous utilisez un autre réseau, tel qu’Azure CNI, Dynamic Allocation ou Azure CNI Overlay, aucune table de routage n’est créée par défaut. Dans ce cas, vérifiez que le groupe de sécurité réseau (groupe de sécurité réseau) n’a aucune configuration personnalisée qui bloque la connexion Internet sortante.
Si le type sortant est userDefinedRouting
, vérifiez que les conditions suivantes sont remplies :
L’appareil de sortie (pare-feu ou proxy) est accessible.
L’appareil de sortie autorise le trafic sortant requis à partir du cluster.
Pour obtenir la liste des noms de domaine complets autorisés pour votre cluster AKS, exécutez la commande az aks egress-endpoints list :
az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
Si le type sortant est managedNATGateway
, vérifiez si le sous-réseau AKS est associé à la passerelle NAT en exécutant la commande az network nat gateway show :
az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"
Pour plus d’informations sur l’utilisation d’une passerelle NAT avec AKS, consultez Passerelle NAT gérée.
Étape 3 : Examiner la sortie curl lorsque vous vous connectez au pod d’application
Les codes de réponse curl peuvent vous aider à identifier le type de problème. Une fois le code de réponse disponible, essayez de mieux comprendre le comportement du problème. Pour plus d’informations sur les codes d’état HTTP et le comportement sous-jacent du problème, reportez-vous au tableau suivant.
Source d’informations | Lien |
---|---|
Internet Assigned Numbers Authority (IANA) | Registre du code d’état HTTP (Hypertext Transfer Protocol) |
Mozilla | Codes d’état de réponse HTTP |
Wikipedia | Liste des codes d’état HTTP |
Les codes d’état HTTP suivants peuvent indiquer les problèmes répertoriés.
Code de statut HTTP | Problème | Exemple |
---|---|---|
4xx |
|
|
5xx |
Un problème affecte le serveur. | L’application est en panne ou une passerelle ne fonctionne pas. |
Vous pouvez essayer de vous connecter au point de terminaison d’application à l’aide de curl. Voici un exemple de commande et de sortie :
# 404 error code example
$ curl -vv <host IP address>/test.index
* Trying <host IP address>:80...
* TCP_NODELAY set
* Connected to <host IP address> (<host IP address>) port 80 (#0)
> GET /test.index HTTP/1.1
> Host: <host IP address>
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
...
* Connection #0 to host <host IP address> left intact
Étape 4 : Vérifier ce qui se passe si le trafic sortant contourne temporairement l’appliance virtuelle
Pour un test rapide pour déterminer si l’appareil de sortie (appliance virtuelle) provoque le problème, vous pouvez autoriser temporairement tout le trafic à passer par Internet. Pour configurer cette configuration, vous pouvez modifier l’adresse IP et l’itinéraire de port par défaut de 0.0.0.0
/0
l’appliance virtuelle pour passer par Internet à la place.
Si l’appareil de sortie fonctionne correctement lors du contournement de l’appliance virtuelle, vérifiez les journaux de l’appliance virtuelle pour voir quels paquets sont refusés et ajouter des règles d’autorisation dans l’appliance virtuelle en conséquence.
Le problème se produit-il par intermittence ?
Vous pouvez rencontrer des problèmes sortants intermittents pour de nombreuses raisons. Pour résoudre les problèmes de connexion sortante intermittente, procédez comme suit :
Étape 1 : Vérifier si les ressources de pod ou de nœud sont épuisées
Exécutez les commandes suivantes pour vérifier la quantité de ressources utilisées :
kubectl top pods
kubectl top nodes
Étape 2 : Vérifier si le disque du système d’exploitation est utilisé fortement
Pour vérifier si le disque du système d’exploitation est largement utilisé, procédez comme suit :
Dans le Portail Azure, recherchez et sélectionnez Groupes de machines virtuelles identiques.
Dans la liste des groupes identiques, sélectionnez le groupe identique utilisé pour votre cluster AKS.
Dans le volet de navigation du groupe identique, accédez à la section Surveillance , puis sélectionnez Métriques.
Affichez les métriques de disque pour le groupe identique à partir de la section Métriques en recherchant les champs suivants.
Champ Valeur Étendue Nom de VMSS Espace de noms des métriques Hôte de machine virtuelle Mesures Métrique du système d’exploitation et du disque de données
Pour plus d’informations sur les métriques, consultez les métriques disque de système d’exploitation et disque de données.
Pour afficher les recommandations AKS relatives à l’utilisation du disque, procédez comme suit :
Dans le Portail Azure, recherchez et sélectionnez services Kubernetes.
Dans la liste des services Kubernetes, sélectionnez le nom de votre cluster AKS.
Dans le volet de navigation du cluster AKS, accédez à la section Surveillance , puis sélectionnez Recommandations Advisor.
Passez en revue les recommandations répertoriées concernant l’utilisation du disque.
Si le disque du système d’exploitation est utilisé fortement, envisagez d’utiliser les solutions suivantes :
Augmentez la taille du disque du système d’exploitation.
Basculez vers les disques de système d’exploitation éphémères.
Si ces solutions ne résolvent pas le problème, analysez le processus qui effectue des opérations de lecture/écriture lourdes sur le disque. Vérifiez ensuite si vous pouvez déplacer les actions vers un disque de données au lieu du disque du système d’exploitation.
Étape 3 : Vérifier si le port de traduction d’adresses réseau source est épuisé
Si les applications effectuent de nombreuses connexions sortantes, elles peuvent épuiser le nombre de ports disponibles sur l’adresse IP de l’appareil sortant. Suivez les diagnostics standard de l’équilibreur de charge avec les métriques, les alertes et l’intégrité des ressources pour surveiller l’utilisation et l’allocation du port de traduction d’adresses réseau source (SNAT) de votre équilibreur de charge existant. Surveillez pour vérifier ou déterminer le risque d’épuisement des ports SNAT.
Atteignez-vous ou dépassez le nombre maximal de ports SNAT alloués ? Dans ce cas, vous pouvez vérifier votre application pour déterminer s’il réutilisant les connexions existantes. Pour plus d’informations, consultez Concevoir vos applications pour utiliser efficacement les connexions.
Si vous pensez que l’application est correctement configurée et que vous avez besoin de ports SNAT plus que le nombre par défaut de ports alloués, procédez comme suit :
Augmentez le nombre d’adresses IP publiques sur l’appareil de sortie. Si l’appareil de sortie est l’équilibreur de charge, vous pouvez augmenter le nombre d’adresses IP publiques sur l’équilibreur de charge.
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.