Soluciona problemas de implementaciones de mallas de servicios de GKE de Cloud Service Mesh

En esta guía, encontrarás información para resolver problemas con las implementaciones de malla de servicios de la API de puerta de enlace.

Información del campo status

Todos los recursos de la API de puerta de enlace tienen un campo status que refleja el estado de los recursos desde la perspectiva del controlador. Además del campo status, el controlador agrega eventos a los recursos de la API de puerta de enlace 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 es similar a este:

...
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 comenzó a conciliar esta malla en particular. Si este estado dura más de 5 minutos sin eventos agregados, lee la siguiente sección, El controlador no concilia 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 eventos indican el problema subyacente.

Parece que el controlador no concilia un recurso TDMesh.

Para diagnosticar el problema, confirma que exista una GatewayClass gke-td:

kubectl get gatewayclasses

El resultado debe incluir una GatewayClass llamada gke-td.

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

Si no se muestra un GatewayClass con ese nombre, sigue Instala las definiciones de recursos personalizados necesarias para confirmar todas las CRD necesarias en el clúster de configuración y vuelve a habilitar la función de concentrador para la malla de servicios de Google Kubernetes Engine de Cloud Service Mesh con los siguientes comandos:

  1. Inhabilita la función:

    gcloud container hub ingress disable
    
  2. Para volver a habilitar la función, sigue estos pasos:

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