Solucionar problemas de implementaciones de service mesh de Cloud Service Mesh en GKE

Esta guía contiene información para resolver problemas con las implementaciones de malla de servicio de la API Gateway.

Información del campo status

Todos los recursos de la API Gateway tienen un campo status que refleja el estado de los recursos desde la perspectiva del controlador. Además del campo status, la aplicación de controlador añade eventos a los recursos de la API Gateway para proporcionar información sobre sus operaciones en esos recursos.

Por ejemplo, usa los siguientes comandos para inspeccionar el estado y los eventos de un TDMesh:

kubectl describe tdmesh td-mesh

El resultado debería ser similar al siguiente:

...
Status:
  Conditions:
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                NotReconciled
    Status:                False
    Type:                  Scheduled
Events:
...

El estado anterior indica que el controlador no ha empezado a reconciliar esta malla en concreto. Si este estado se mantiene durante más de 5 minutos sin que se añadan eventos, consulta la sección Parece que el controlador no reconcilia un recurso TDMesh para solucionar el problema.

Puedes usar un método similar para depurar problemas relacionados con otros recursos, como HTTPRoute, TCPRoute y otros recursos de enrutamiento.

Por lo general, los estados y los eventos indican el problema subyacente.

El controlador no parece conciliar un recurso TDMesh

Para diagnosticar el problema, confirma que existe un elemento gke-td GatewayClass:

kubectl get gatewayclasses

El resultado debe incluir un GatewayClass llamado gke-td.

NAME             CONTROLLER
gke-td           networking.gke.io/gateway

Si no se devuelve ningún GatewayClass con ese nombre, sigue los pasos para instalar las definiciones de recursos personalizados necesarias para confirmar que todas las CRDs necesarias están instaladas en el clúster de configuración. Después, vuelve a habilitar la función de centro para la malla de servicios de Google Kubernetes Engine de Cloud Service Mesh con los siguientes comandos:

  1. Para inhabilitar la función, sigue estos pasos:

    gcloud container hub ingress disable
    
  2. Vuelve a habilitar la función:

    gcloud container hub ingress enable \
      --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1