Resolva problemas de implementações de service mesh do GKE do Cloud Service Mesh

Este guia contém informações para resolver problemas com implementações de malhas de serviço da Gateway API.

Informações no campo status

Todos os recursos da API Gateway têm um campo status que reflete o estado dos recursos na perspetiva do controlador. Além do campo status, a app do controlador anexa eventos aos recursos da API Gateway para fornecer informações sobre as respetivas operações nesses recursos.

Por exemplo, use os seguintes comandos para inspecionar o estado e os eventos de um TDMesh:

kubectl describe tdmesh td-mesh

O resultado é semelhante ao seguinte:

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

O estado anterior indica que o controlador não começou a conciliar esta malha específica. Se este estado durar mais de 5 minutos sem eventos anexados, leia a secção seguinte, O controlador não parece conciliar um recurso TDMesh para resolver o problema.

Pode usar um método semelhante para depurar problemas relacionados com outros recursos, como HTTPRoute, TCPRoute e outros recursos de encaminhamento.

Normalmente, os estados e os eventos indicam o problema subjacente.

O controlador não parece reconciliar um recurso TDMesh

Para diagnosticar o problema, confirme se existe um gke-td GatewayClass:

kubectl get gatewayclasses

O resultado deve incluir um elemento GatewayClass denominado gke-td.

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

Se não for devolvido um GatewayClass com esse nome, siga as instruções em Instale as definições de recursos personalizados necessárias para confirmar que todas as CRDs necessárias estão instaladas no cluster de configuração e, em seguida, reative a funcionalidade do hub para a malha de serviços do Google Kubernetes Engine do Cloud Service Mesh com os seguintes comandos:

  1. Desative a funcionalidade:

    gcloud container hub ingress disable
    
  2. Reative a funcionalidade:

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