Risoluzione dei problemi di configurazione
Questa sezione descrive i problemi più comuni di Cloud Service Mesh e spiega come risolverli. Se hai bisogno di ulteriore assistenza, consulta Richiedere assistenza.
Controllare MembershipState
In qualsiasi momento puoi controllare lo stato più recente del mesh 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 di MembershipState
Se Cloud Service Mesh segnala condizioni a MembershipState per un cluster, potrebbe significare che non è stato possibile applicare le configurazioni del mesh (ad esempio le risorse personalizzate di Istio). 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 pagina 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. Per le risorse personalizzate di Istio, le configurazioni non valide vengono eliminate completamente dalla traduzione. | Gli errori specifici vengono scritti nelle configurazioni che li hanno causati. Per saperne di più su come diagnosticarli, consulta la sezione Errori di convalida della configurazione. |
CONFIG_VALIDATION_WARNING |
Abbiamo riscontrato potenziali problemi in una o più configurazioni. Per le risorse personalizzate di Istio, i campi non validi specifici vengono ignorati, ma le configurazioni complessive vengono elaborate. Potrebbe verificarsi un comportamento imprevisto. | Per saperne di più su come diagnosticarli, consulta la sezione Errori di convalida della configurazione. |
MULTICLUSTER_SECRET_WARNING |
Il cluster utilizza un secret multi-cluster di Istio creato manualmente anziché l'API multi-cluster dichiarativa per l'individuazione degli endpoint. | Trasferisci la configurazione di individuazione degli endpoint multi-cluster all'implementazione dichiarativa. Per saperne di più, consulta la pagina Secret multi-cluster. |
WORKLOAD_IDENTITY_REQUIRED |
Workload Identity non è abilitato per il cluster o per almeno uno dei pool di nodi. | Abilita Workload Identity a livello di cluster e pool di nodi. Per istruzioni, consulta la pagina Abilitare Workload Identity. |
MANAGED_CNI_NOT_ENABLED |
CNI gestito non è abilitato per questo cluster. | Abilita CNI gestito per mantenere le best practice all'interno del mesh. Per saperne di più, consulta la pagina Abilitare CNI gestito. |
NON_STANDARD_SIDECAR_BINARY_USAGE |
Uno o più comandi all'interno dei container Istio utilizzano file binari diversi da `envoy`, `pilot_agent` o `iptables`. | Rimuovi la dipendenza dai file binari non supportati. Per saperne di più, consulta la 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 a Istio Ingress Gateway per allinearsi alle best practice. | Per istruzioni dettagliate, consulta la documentazione. |
UNSUPPORTED_MULTIPLE_CONTROL_PLANES |
Il cluster ha eseguito il provisioning di più canali del control plane. Cloud Service Mesh supporta un solo canale per cluster. | Per saperne di più, consulta Risolvere il problema di più control plane. |
REQUIRED_ORG_POLICY_DISABLED |
È necessario abilitare una policy dell'organizzazione disabilitata. | Disabilita questa policy per il progetto per garantire la funzionalità di Cloud Service Mesh. Per saperne di più, consulta Abilitare una policy dell'organizzazione obbligatoria. |
MISSING_CONTROL_PLANE_CONFIG |
Il cluster non ha la configurazione per Cloud Service Mesh. | Segui le istruzioni riportate nella documentazione relativa alla configurazione del control plane mancante per creare questa configurazione. Il mesh di servizi funziona ancora ma richiede un aggiornamento. |
Errori di convalida della configurazione
I codici CONFIG_VALIDATION_WARNING e CONFIG_VALIDATION_ERROR
indicano che sono stati riscontrati problemi nelle configurazioni del mesh (risorse personalizzate di Istio o Kubernetes
Custom Resources) e che un sottoinsieme di configurazioni potrebbe non essere stato applicato correttamente.
Comportamento di convalida della configurazione
Cloud Service Mesh utilizza un processo di convalida della configurazione a due livelli:
- Convalida sincrona: un webhook di convalida esegue i controlli di sintassi iniziali. Se una configurazione è fondamentalmente errata, l'aggiornamento viene rifiutato a livello dell'API Kubernetes e
kubectl applynon riesce immediatamente. - Convalida asincrona: la verifica semantica viene eseguita in background durante la traduzione. Se questa fase rileva una configurazione non valida, il sistema elimina in modo asincrono la risorsa personalizzata (CR) per evitare che interrompa il resto del mesh, continuando ad applicare le altre configurazioni valide.
Per comprendere meglio questo comportamento, consulta la sezione Comprendere la convalida della configurazione.
Individuare le configurazioni non valide
Poiché le risorse personalizzate non valide vengono eliminate in modo asincrono, devi controllarne attivamente lo stato. Molti dettagli sugli errori per risorsa vengono scritti nel campo dello stato della risorsa applicabile e visualizzati nello stato della funzionalità del parco risorse.
Il seguente comando può essere utilizzato per individuare le configurazioni non valide e visualizzare i messaggi di errore specifici. (Nota: questi sono specificamente per le risorse 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"
}
]
}