Informazioni sulla compatibilità di Cloud Service Mesh
Questa guida descrive in dettaglio come valutare la compatibilità di un parco risorse per la modernizzazione del piano di controllo, confermando che la sua configurazione, l'infrastruttura e la scalabilità sono compatibili con l'implementazione del piano di controllo TRAFFIC_DIRECTOR.
Attivare o disattivare i controlli di compatibilità
Per avviare i controlli di compatibilità, attiva la modalità di convalida per il parco risorse, che attiva un audit continuo di tutte le configurazioni di Istio, le configurazioni dell'infrastruttura e i parametri di scalabilità. L'attivazione di questi controlli non comporta modifiche al parco risorse o ai cluster, ma solo la generazione di report sulla compatibilità.
Attivare i controlli
Per avviare l'audit di compatibilità, esegui il seguente comando gcloud:
gcloud alpha container fleet mesh update --modernization-compatibility validation-enabled --project FLEET_PROJECT_ID
Sostituisci FLEET_PROJECT_ID con l'ID del progetto host del parco risorse.
In genere, FLEET_PROJECT_ID ha lo stesso nome del progetto.
Una volta attivato, Cloud Service Mesh inizia a valutare la compatibilità del parco risorse e di tutti i cluster di cui è stato eseguito il provisioning in Cloud Service Mesh per la modernizzazione.
Disattivare i controlli
Per interrompere la generazione di report sui risultati di compatibilità, esegui il seguente comando:
gcloud alpha container fleet mesh update --modernization-compatibility validation-disabled --project FLEET_PROJECT_ID
Questo comando rimuove le condizioni di compatibilità di modernizzazione dagli stati di appartenenza, nonché lo stato ModernizationCompatible dai CR di Istio individuali.
Informazioni sulla compatibilità
La compatibilità di modernizzazione viene segnalata utilizzando le condizioni a livello di parco risorse e di appartenenza (cluster). Il sistema esegue vari controlli in momenti diversi, con tutti i controlli eseguiti almeno una volta al giorno. Attendi fino a un giorno prima che lo stato venga aggiornato dopo aver attivato i controlli o applicato le correzioni.
Per visualizzare questi risultati, recupera lo stato più recente del mesh con il seguente comando:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Compatibilità a livello di cluster
Cerca le condizioni con gravità WARNING o ERROR in membershipStates.servicemesh per ogni cluster di cui è stato eseguito il provisioning in Cloud Service Mesh nel parco risorse. Se esistono incompatibilità, l'output è simile al seguente:
membershipSpecs:
projects/project_id/locations/global/memberships/cluster-a:
mesh:
management:MANAGEMENT_AUTOMATIC
membershipStates:
projects/project_id/locations/global/memberships/cluster-a:
servicemesh:
conditions:
- code: MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION
details: 'Pod pod-a in namespace test-namespace: invalid annotations: ["status.sidecar.istio.io/port": failed to parse port - "invalid", port must be a number and should be in the range 1..65535]; unsupported annotations: ["ambient.istio.io/redirection"] .'
documentationLink: https://cloud.google.com/service-mesh/...
severity: WARNING
- code: WORKLOAD_IDENTITY_REQUIRED
details: 'Workload Identity is not enabled for the cluster or at least one of the node pools.'
documentationLink: https://cloud.google.com/...
severity: ERROR
...
Segui il documentationLink fornito in ogni condizione per comprendere e risolvere l'incompatibilità specifica.
Risolvere i problemi di compatibilità
Risolvere le annotazioni dei pod incompatibili
Il codice MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION indica che non è possibile modernizzare il cluster al piano di controllo TRAFFIC_DIRECTOR perché alcuni pod hanno annotazioni di Istio non supportate o non valide.
Esempio di output del comando gcloud container fleet mesh describe con la condizione MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION impostata per l'appartenenza:
membershipStates:
projects/project_id/locations/global/memberships/membership-a:
servicemesh:
conditions:
- code: MODERNIZATION_INCOMPATIBLE_POD_ANNOTATION
details: 'Pod pod-a in namespace test-namespace: invalid annotations: ["status.sidecar.istio.io/port": failed to parse port - "invalid", port must be a number and should be in the range 1..65535]; unsupported annotations: ["ambient.istio.io/redirection"] .'
documentationLink: https://cloud.google.com/service-mesh/...
severity: WARNING
Per risolvere queste annotazioni dei pod:
Identifica le annotazioni problematiche: controlla il campo
detailsdella condizione di stato per trovare le chiavi di annotazione non supportate o non valide. Trova tutti i pod con le chiavi di annotazione problematiche.Correggi e verifica:
- Modifica le specifiche YAML per i deployment o i pod per rimuovere o modificare le annotazioni identificate, assicurandoti che non includano annotazioni non supportate. Applica di nuovo il file YAML aggiornato al cluster.
- Una volta corrette tutte le annotazioni dei pod, la condizione
MODERNIZATION_INCOMPATIBLE_POD_ANNOTATIONnon verrà più visualizzata per l'appartenenza.