Consulte los consejos de esta sección para corregir los errores de redes de clústeres de TKGS.

Comprobar redes de nodos

Cada clúster de TKG debe tener los siguientes recursos de red.
Objeto de red Recursos de red Descripción Solucionar problemas Comando
Red virtual Enrutador de nivel 1 y segmento vinculado Red de nodo para el clúster Asegurarse de que la IP de SNAT esté asignada
kubectl get virtualnetwork -n NS-NAME
VirtualNetworkInterface Puerto lógico en el segmento Interfaz de red de nodo para nodos del clúster Asegurarse de que cada máquina virtual tenga una dirección IP
kubectl get virtualmachines -n NS-NAME NODE-NAME

Comprobar el equilibrador de carga para el plano de control

El equilibrador de carga del plano de control del clúster de TKG proporciona acceso al servidor de la API de Kubernetes. El sistema aprovisiona automáticamente este equilibrador de carga durante la creación del clúster. Debe tener los siguientes recursos.

Comprobar el estado del equilibrador de carga del plano de control puede ayudarlo a comprender si los recursos estaban listos cuando se produjeron errores. En general, puede encontrar este equilibrador de carga mediante Buscar estos equilibradores de carga con este comando en el clúster supervisor: kubectl get services -A | grep control-plane-service
Objeto de red Recursos de red Descripción Solucionar problemas Comando
Servicio de máquina virtual N/C Se crea el servicio de máquina virtual y se traduce a un servicio k8s. Asegúrese de que su estado esté actualizado y que incluya la IP virtual (VIP) del equilibrador de carga.
kubectl get virtualmachineservices -n NS-NAME SERVICE-NAME
Servicio Servidor de equilibrador de carga con instancia de servidor virtual y grupo de servidores asociado (grupo de miembros) Se crea un servicio de Kubernetes de tipo equilibrador de carga para acceder al servidor de API del clúster de TKG. Asegúrese de que se haya asignado una IP externa. Asegúrese de que puede acceder a la API del clúster de TKG a través de la IP externa del servicio de equilibrador de carga.
Espacio de nombres de supervisor:
kubectl get services -A | grep control-plane-service
Espacio de nombres del clúster:
kubectl get services -n NS-NAME
Cualquier espacio de nombres
curl -k https://EXTERNAL-IP:PORT/healthz
Endpoints Los miembros del endpoint (nodos de plano de control del clúster de TKG) deben estar en el grupo de miembros. Se crea un endpoint para incluir todos los nodos del plano de control del clúster de TKG.
kubectl get endpoints -n NS-NAME SERVICE-NAME

Comprobar los servicios del equilibrador de carga en los nodos de trabajo

El usuario crea una instancia de equilibrador de carga para los nodos de trabajo del clúster de TKG cuando se crea un servicio de Kubernetes de tipo equilibrador de carga.

El primer paso es asegurarse de que el proveedor de nube se esté ejecutando en el clúster de TKG.
kubectl get pods -n vmware-system-cloud-provider
Compruebe que se hayan creado los objetos de Kubernetes relacionados y que tengan un estado correcto.
Objetos de red Recursos de red Descripción Comando
Servicio de máquina virtual en supervisor N/C Se crea un servicio de máquina virtual en supervisor y se traduce en un servicio de Kubernetes en supervisor
kubectl get virtualmachineservice -n NS-NAME SVC-NAME
Servicio de equilibrador de carga en supervisor Servidor virtual en el equilibrador de carga del clúster de TKG y un grupo de miembros asociado. Se crea el servicio de equilibrador de carga en supervisor para acceder a este tipo de servicio de equilibrador de carga
kubectl get services -n NS-NAME SVC-NAME
Endpoints en Supervisor Los miembros del endpoint (nodos de trabajo del clúster de TKG) deben estar en el grupo de miembros en NSX. Se crea un endpoint para incluir todos los nodos de trabajo del clúster de TKG
# kubectl get endpoints -n NS-NAME SVC-NAME
Servicio de equilibrador de carga en el clúster de TKG N/C El servicio del equilibrador de carga en el clúster de TKG implementado por el usuario debe tener su estado actualizado con la IP del equilibrador de carga
kubectl get services

Comprobar la pila de redes NSX Supervisor

El servidor de API de Kubernetes, el pod de NCP y el contenedor del administrador que se ejecuta en cualquier pod de controlador son los puntos de partida principales para comprobar los problemas de redes de infraestructura.

El siguiente mensaje de error puede indicar un problema de enrutamiento o MTU en cualquier punto del tejido de red, incluido el grupo de puertos físicos al que están conectadas las NIC de hosts ESXi:
{"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"}
Para solucionar problemas, acceda mediante SSH al host ESXi y ejecute el siguiente comando:
esxcli network ip interface ipv4 get

Este comando enumera todas las interfaces de VMkernel del host. Si tiene una única interfaz de TEP, siempre será vmk10. Si tiene una interfaz de TEP de segundo o tercer nivel, será vmk11, vmk12 y así sucesivamente. La cantidad de interfaces de TEP que se crean depende de cuántos vínculos superiores haya asignado al TEP en el perfil de vínculo superior. Se crea una interfaz de TEP por vínculo superior si seleccionó "uso compartido de carga" para los TEP entre vínculos superiores.

El comando ping principal de TEP a TEP tiene la siguiente sintaxis:
vmkping ++netstack=vxlan -s 1572 -d -I vmk10 10.218.60.66 
Donde
  • -s es el tamaño del paquete
  • -d significa no fragmentar
  • -I significa que el origen del vínculo es vmk10
  • IP address es una interfaz de TEP en otro host ESXi o NSX Edge al que está haciendo ping
Si la MTU se establece en 1600, se debe producir un error en un tamaño de paquete superior a 1573 (solo se necesitan MTU superiores a 1500). Si la MTU se establece en 1500, se debe producir un error en un valor superior a 1473. Es posible que desee cambiar esta opción a vmk11 si tiene interfaces de TEP adicionales desde las que desea obtener el ping.