Reportez-vous aux conseils de cette section pour résoudre les erreurs de mise en réseau du cluster TKGS.

Vérifier la mise en réseau des nœuds

Chaque cluster TKG doit disposer des ressources réseau suivantes.
Objet de réseau Ressources réseau Description Dépanner Commande
Réseau virtuel Routeur de niveau 1 et segment lié Réseau de nœuds pour le cluster Assurez-vous que l'adresse IP SNAT est attribuée
kubectl get virtualnetwork -n NS-NAME
VirtualNetworkInterface Port logique sur le segment Interface réseau du nœud pour les nœuds de cluster Assurez-vous que chaque machine virtuelle dispose d'une adresse IP
kubectl get virtualmachines -n NS-NAME NODE-NAME

Vérifier l'équilibrage de charge du plan de contrôle

L'équilibrage de charge du plan de contrôle du cluster TKG fournit l'accès au serveur d'API Kubernetes. Cet équilibrage de charge est automatiquement provisionné par le système lors de la création du cluster. Il doit disposer des ressources suivantes.

La vérification de l'état de l'équilibrage de charge du plan de contrôle peut vous aider à déterminer si les ressources étaient prêtes lorsque des erreurs se sont produites. En général, vous trouvez cet équilibrage de charge à l'aide de l'option Rechercher ces équilibrages de charge avec la commande suivante sur le cluster superviseur : kubectl get services -A | grep control-plane-service
Objet de réseau Ressources réseau Description Dépanner Commande
VirtualMachineService S.O. VirtualMachineService est créé et traduit en service k8s. Assurez-vous que son état est mis à jour et inclut l'adresse IP virtuelle (VIP) de l'équilibrage de charge.
kubectl get virtualmachineservices -n NS-NAME SERVICE-NAME
Service Serveur d'équilibrage de charge avec instance de VirtualServer et pool de serveurs associé (pool de membres) Le service Kubernetes de type Équilibrage de charge est créé pour accéder au serveur d'API du cluster TKG. Assurez-vous qu'une adresse IP externe est attribuée. Assurez-vous que vous pouvez accéder à l'API du cluster TKG via l'adresse IP externe du service d'équilibrage de charge.
Espace de noms de superviseur :
kubectl get services -A | grep control-plane-service
Espace de noms de cluster :
kubectl get services -n NS-NAME
Espace de noms quelconque
curl -k https://EXTERNAL-IP:PORT/healthz
Points de terminaison Les membres du point de terminaison (nœuds de plan de contrôle du cluster TKG) doivent se trouver dans le pool de membres. Un point de terminaison est créé pour inclure tous les nœuds de plan de contrôle du cluster TKG.
kubectl get endpoints -n NS-NAME SERVICE-NAME

Vérifier les services d'équilibrage de charge sur les nœuds worker

Une instance d'équilibrage de charge pour les nœuds worker du cluster TKG est créée par l'utilisateur lorsqu'un service Kubernetes de type Équilibrage de charge est créé.

La première étape consiste à s'assurer que le fournisseur de cloud est en cours d'exécution sur le cluster TKG.
kubectl get pods -n vmware-system-cloud-provider
Vérifiez que les objets Kubernetes associés ont été créés et sont dans l'état correct.
Objets de réseau Ressources réseau Description Commande
VirtualMachineService dans le superviseur S.O. Un VirtualMachineService est créé dans le superviseur et traduit en service Kubernetes dans le superviseur
kubectl get virtualmachineservice -n NS-NAME SVC-NAME
Service d'équilibrage de charge dans le superviseur VirtualServer dans l'équilibrage de charge du cluster TKG et un pool de membres associé. Le service d'équilibrage de charge est créé dans le superviseur pour accéder à ce type de service d'équilibrage de charge
kubectl get services -n NS-NAME SVC-NAME
Points de terminaison dans le superviseur Les membres du point de terminaison (nœuds worker du cluster TKG) doivent se trouver dans le pool de membres dans NSX. Un point de terminaison est créé pour inclure tous les nœuds worker du cluster TKG
# kubectl get endpoints -n NS-NAME SVC-NAME
Service d'équilibrage de charge dans le cluster TKG S.O. Le service d'équilibrage de charge dans le cluster TKG déployé par l'utilisateur doit être mis à jour avec l'adresse IP de l'équilibrage de charge
kubectl get services

Vérifier la pile de mise en réseau NSX du Superviseur

Le serveur d'API Kubernetes, l'espace NCP et le conteneur du gestionnaire qui s'exécutent dans n'importe quel espace de contrôleur sont les points de départ principaux pour vérifier les problèmes de mise en réseau de l'infrastructure.

Le message d'erreur suivant peut indiquer un problème de routage ou de MTU à n'importe quel point de l'infrastructure réseau, y compris le groupe de ports physiques auquel les cartes réseau des hôtes ESXi sont connectées :
{"log":"I0126 19:40:15.347154 1 log.go:172] http: TLS handshake error from 
100.64.128.1:4102: EOF\n","stream":"stderr","time":"2021-01-26T19:40:15.347256146Z"}
Pour résoudre les problèmes, connectez-vous par SSH à l'hôte ESXi et exécutez la commande suivante :
esxcli network ip interface ipv4 get

Cette commande répertorie toutes les interfaces VMkernel de l'hôte. Si vous disposez d'une seule interface TEP, il s'agira toujours de vmk10. Si vous disposez d'une deuxième ou troisième interface TEP, il s'agira de vmk11 et vmk12, et ainsi de suite. La quantité d'interfaces TEP créées dépend du nombre de liaisons montantes que vous avez attribuées au TEP dans le profil de liaison montante. Une interface TEP est créée par liaison montante, si vous avez sélectionné « Partage de charge » pour les TEP entre les liaisons montantes.

La commande ping de TEP à TEP principale a la syntaxe suivante :
vmkping ++netstack=vxlan -s 1572 -d -I vmk10 10.218.60.66 
  • -s correspond à la taille du paquet.
  • -d signifie ne pas fragmenter.
  • -I signifie récupérer le lien à partir de vmk10.
  • L'IP address est une interface TEP sur un autre hôte ESXi ou NSX Edge sur lequel vous exécutez une commande ping.
Si la MTU est définie sur 1 600, une taille de paquet supérieure à 1 573 doit échouer (vous n'avez besoin que d'une MTU supérieure à 1 500). Si la MTU est définie sur 1 500, tout ce qui dépasse 1 473 doit échouer. Vous pouvez remplacer cette option par vmk11 si vous disposez d'interfaces TEP supplémentaires à partir desquelles vous souhaitez lancer le ping.