Risolvi i problemi di deployment del mesh di servizi GKE di Cloud Service Mesh

Questa guida contiene informazioni per la risoluzione dei problemi relativi ai deployment mesh del servizio API Gateway.

Informazioni nel campo status

Tutte le risorse dell'API Gateway hanno un campo status che riflette lo stato delle risorse dal punto di vista del controller. Oltre al campo status, il controller aggiunge eventi alle risorse dell'API Gateway per fornire informazioni sulle sue operazioni su queste risorse.

Ad esempio, utilizza i comandi seguenti per esaminare lo stato e gli eventi di un TDMesh:

kubectl describe tdmesh td-mesh

L'output è simile al seguente:

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

Lo stato precedente indica che il controller non ha avviato la riconciliazione di questo specifico mesh. Se questo stato dura più di 5 minuti senza aggiungere eventi, leggi la sezione seguente, Il controller non sembra riconciliare una risorsa TDMesh per risolvere ulteriormente il problema.

Puoi utilizzare un metodo simile per eseguire il debug dei problemi relativi ad altre risorse, ad esempio HTTPRoute, TCPRoute e altre risorse di routing.

Di solito, gli stati e gli eventi indicano il problema di base.

Il controller non sembra riconciliare una risorsa TDMesh

Per diagnosticare il problema, verifica che esista un GatewayClass gke-td:

kubectl get gatewayclasses

L'output dovrebbe includere un valore GatewayClass denominato gke-td.

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

Se non viene restituito un GatewayClass con questo nome, segui Installa le definizioni di risorse personalizzate richieste per confermare che tutti i CRD richiesti siano installati nel cluster di configurazione, quindi riattiva la funzionalità hub per il mesh di servizi Google Kubernetes Engine di Cloud Service Mesh con i seguenti comandi:

  1. Disattiva la funzionalità:

    gcloud container hub ingress disable
    
  2. Riattiva la funzione:

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