Risoluzione dei problemi di scalabilità Istiod in Anthos Service Mesh
Questa sezione illustra i problemi comuni di Anthos Service Mesh e come risolverli. Se hai bisogno di ulteriore aiuto, vedi Ricevere assistenza.
Fattori di scalabilità
Istiod invia la configurazione a ogni sidecar utilizzando un flusso gRPC di lunga durata. che ha diverse caratteristiche che influiscono sulla scalabilità:
- La dimensione della configurazione da generare:
- Numero totale di servizi/pod e risorse Istio
- Per i progetti su larga scala, regola le impostazioni per Sidecar in modo da ridurre le dimensioni di configurazione.
- Il tasso 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 è economica per le prestazioni perché vengono inviati solo aggiornamenti incrementali.
- Il numero di proxy per i quali viene generata la configurazione:
- Interessa il numero di gateway e pod con un file collaterale.
Considerazioni sulla scalabilità
Istiod scala bene in verticale (richieste di grandi dimensioni) e orizzontalmente (più repliche). Assicurati che i limiti per le CPU non siano troppo restrittivi. Se Istiod raggiunge il limite della CPU, potrebbe verificarsi una limitazione, che potrebbe influire negativamente sulla distribuzione della configurazione. Se riscontri problemi di prestazioni, valuta la possibilità di eseguire l'upgrade all'ultima versione di Anthos Service Mesh, poiché ogni versione ottimizza le prestazioni.
Carico non bilanciato
Modifiche di grande entità nelle dimensioni del cluster potrebbero causare un carico temporaneamente non bilanciato, a causa delle connessioni di lunga durata. Ciò viene ridotto da una durata di connessione massima di 30 minuti, che potrebbe generare messaggi di errore in Envoy, ad esempio gRPC config stream
closed: 13
, che consente il ribilanciamento naturale del carico.
Riduci questo problema impostando più repliche di Istiod (l'impostazione predefinita prevede due repliche) e pre-scalando se prevedi scale up estremi dei cluster.