Risolvere i problemi di scalabilità di Istiod in Cloud Service Mesh
Questa sezione illustra i problemi comuni di Cloud Service Mesh e come risolverli. Se hai bisogno di ulteriore assistenza, consulta la sezione Ricevere assistenza.
Fattori di scalabilità
Istiod invia la configurazione a ogni sidecar utilizzando uno stream gRPC a lungo termine. Ha diverse caratteristiche che influiscono sulla scalabilità:
- Le dimensioni della configurazione da generare:
- Numero totale di servizi/pod e risorse Istio
- Per le installazioni su larga scala, modifica le impostazioni di Sidecar per ridurre le dimensioni della configurazione.
- La velocità di cambiamento nell'ambiente:
- Quando viene creato un nuovo servizio o viene modificata la configurazione di Istio, gli aggiornamenti completi vengono inviati ai proxy.
- L'aggiunta di nuovi endpoint non influisce sulle prestazioni, perché vengono inviati solo aggiornamenti incrementali.
- Il numero di proxy per i quali viene generata la configurazione:
- Il valore è influenzato dal numero di gateway e pod con un sidecar.
Considerazioni sulla scalabilità
Istiod è scalabile verticalmente (richieste di grandi dimensioni) e orizzontalmente (più repliche). Assicurati che i limiti della CPU non siano troppo restrittivi. Se Istiod raggiunge il limite della CPU, potrebbe verificarsi una limitazione che influirà negativamente sulla distribuzione della configurazione. Se riscontri problemi di prestazioni, valuta la possibilità di eseguire l'upgrade alla versione più recente di Cloud Service Mesh, in quanto ogni versione include ottimizzazioni delle prestazioni.
Carico sbilanciato
Modifiche significative delle dimensioni del cluster potrebbero causare un carico temporaneamente sbilanciato a causa delle connessioni di lunga durata. Questo problema viene attenuato da un tempo di connessione massimo di 30 minuti, che potrebbe comportare messaggi di errore in Envoy, ad esempio gRPC config stream
closed: 13
, che consente di riequilibrare il carico in modo naturale.
Per attenuare il problema, utilizza più repliche di Istiod (il valore predefinito è 2 repliche) e la prescalabilità se prevedi aumenti di dimensioni estremi del cluster.