Risolvere i problemi di configurazione

Questa sezione spiega i problemi comuni di Cloud Service Mesh e come risolverli. Se hai bisogno di ulteriore assistenza, consulta la sezione Ricevere assistenza.

Controllo di MembershipState

Puoi controllare lo stato più recente del mesh in qualsiasi momento eseguendo il seguente comando:

gcloud container fleet mesh describe

L'output è simile al seguente:

...
membershipSpecs:
  projects/project_id/locations/global/memberships/cluster:
    mesh:
      management: MANAGEMENT_AUTOMATIC
membershipStates:
  projects/project_id/locations/global/memberships/cluster:
    servicemesh:
      ...
      conditions:
        - code: CONFIG_VALIDATION_WARNING
          documentationLink: https://cloud.google.com/...
          details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
          severity: WARNING
...

Codici di errore MembershipState

Se Cloud Service Mesh segnala condizioni a MembershipState per un cluster, è possibile che le configurazioni di Mesh (ad esempio le risorse personalizzate Istio) non siano state applicate. Le seguenti descrizioni dei codici di errore forniscono ulteriori informazioni su come risolverli.

Codice di errore Causa Risoluzione
CONFIG_APPLY_INTERNAL_ERROR Non è stato possibile applicare una o più configurazioni a causa di un errore interno. Contatta l'assistenza clienti.
QUOTA_EXCEEDED_* Non è stato possibile applicare una o più configurazioni perché le risorse hanno raggiunto un limite di quota. Consulta la sezione Quote per informazioni sulle quote specifiche e su come aumentarle.
CONFIG_VALIDATION_ERROR Non è stato possibile applicare una o più configurazioni a causa di una configurazione non valida. Gli errori specifici vengono scritti nelle configurazioni che li hanno causati. Ulteriori informazioni su come diagnosticarli sono descritte nella sezione Errori di convalida della configurazione.
CONFIG_VALIDATION_WARNING Abbiamo riscontrato potenziali problemi in una o più configurazioni. Potrebbero non essere stati applicati e, se lo sono stati, potrebbero verificarsi comportamenti indesiderati. Ulteriori informazioni su come diagnosticarli sono descritte nella sezione Errori di convalida della configurazione.
MULTICLUSTER_SECRET_WARNING Il cluster utilizza un secret multi-cluster Istio creato manualmente anziché l'API multi-cluster dichiarativa per il rilevamento degli endpoint. Sposta la configurazione del rilevamento degli endpoint multi-cluster nell'implementazione dichiarativa. Per ulteriori informazioni, consulta la pagina Secrets multicluster.
WORKLOAD_IDENTITY_REQUIRED Workload Identity non è abilitato per il cluster o per almeno uno dei pool di nodi. Abilita l'identità del workload a livello di cluster e pool di nodi. Per le istruzioni, vedi la pagina Abilitare Workload Identity.
MANAGED_CNI_NOT_ENABLED CNI gestito non è abilitato per questo cluster. Attiva CNI gestito per mantenere le best practice all'interno del tuo mesh. Puoi trovare ulteriori informazioni nella pagina Attivare CNI gestito.
NON_STANDARD_SIDECAR_BINARY_USAGE Uno o più comandi all'interno dei container Istio utilizzano binari diversi da "envoy", "pilot_agent" o "iptables". Rimuovi la dipendenza dai binari non supportati. Puoi trovare ulteriori informazioni nella pagina Utilizzo di file binari non supportati.
UNSUPPORTED_GATEWAY_CLASS_USAGE Il cluster è configurato con classi di gateway (Istio e Anthos Service Mesh) che richiedono la migrazione al gateway di ingresso Istio per allinearsi alle best practice. Per istruzioni dettagliate, consulta la documentazione

Errori di convalida della configurazione

I codici CONFIG_VALIDATION_WARNING e CONFIG_VALIDATION_ERROR indicano che sono stati rilevati problemi nelle configurazioni del mesh (risorse personalizzate Istio o Kubernetes) e che un sottoinsieme di configurazioni potrebbe non essere stato applicato correttamente.

Molti dettagli degli errori per risorsa vengono scritti nella risorsa applicabile. Il seguente comando può essere utilizzato per individuare le configurazioni non valide e visualizzare i messaggi di errore specifici. (Nota: si tratta di risorse specifiche per Istio e non tutti gli errori di convalida potrebbero essere visualizzati qui).

for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
  do kubectl get $resource --all-namespaces --output=json | \
   jq  '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done

L'output è simile al seguente:

{
  "name": "demo-envoy-filter",
  "namespace": "default",
  "kind": "EnvoyFilter",
  "conditions": [
    {
      "lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
      "message": "This API is not supported",
      "reason": "Invalid",
      "status": "False",
      "type": "Accepted"
    }
  ]
}