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:
Para inhabilitar la función, sigue estos pasos:
gcloud container hub ingress disable
Vuelve a habilitar la función:
gcloud container hub ingress enable \ --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1