Bilanciamento del carico di Cloud Service Mesh
Cloud Service Mesh utilizza proxy sidecar o gRPC senza proxy per fornire il bilanciamento del carico globale per i microservizi interni. Puoi eseguire il deployment di microservizi interni (basati su proxy sidecar o gRPC senza proxy) con istanze in più regioni. Cloud Service Mesh fornisce informazioni su integrità, routing e backend ai proxy sidecar o ai gRPC senza proxy, in modo che possano eseguire il routing ottimale del traffico alle istanze dell'applicazione in più regioni cloud per un servizio.
Nel seguente diagramma, il traffico utente entra in un deployment Google Cloudtramite un bilanciatore del carico globale esterno. Il bilanciatore del carico esterno distribuisce il traffico al microservizio frontend in us-central1 o asia-southeast1, a seconda della posizione dell'utente finale.
L'implementazione interna prevede tre microservizi globali: Frontend, Carrello e Pagamenti. Ogni servizio viene eseguito su gruppi di istanze gestite (MIG) in due
regioni: us-central1 e asia-southeast1. Cloud Service Mesh utilizza un algoritmo di bilanciamento del carico globale che indirizza il traffico dall'utente in California ai microservizi di cui è stato eseguito il deployment in us-central1. Le richieste dell'utente a Singapore vengono indirizzate ai microservizi in asia-southeast1.
Una richiesta utente in entrata viene indirizzata al microservizio Frontend. Il proxy del servizio installato sull'host con il frontend indirizza quindi il traffico al carrello. Il proxy sidecar installato sull'host con il carrello indirizza il traffico al microservizio Pagamenti. In un ambiente gRPC senza proxy, l'applicazione gRPC si occupa della gestione del traffico.
Nell'esempio seguente, se Cloud Service Mesh riceve risultati del controllo di integrità
che indicano che le istanze di macchine virtuali (VM) che eseguono il microservizio Carrello
in us-central1 non sono integre, Cloud Service Mesh indica al
proxy sidecar per i microservizi Frontend di eseguire il failover del traffico al microservizio Carrello
in esecuzione in asia-southeast1. Poiché la scalabilità automatica è
integrata con la gestione del traffico in Google Cloud, Cloud Service Mesh
notifica al MIG in asia-southeast1 il traffico aggiuntivo e le dimensioni del MIG
aumentano.
Cloud Service Mesh rileva che tutti i backend del microservizio Pagamenti sono integri, quindi Cloud Service Mesh indica al proxy di Envoy per il carrello di inviare una parte del traffico (fino alla capacità configurata del cliente) a asia-southeast1 e di trasferire il resto a us-central1.
Componenti di bilanciamento del carico in Cloud Service Mesh
Durante la configurazione di Cloud Service Mesh, devi definire vari componenti di bilanciamento del carico:
- Il servizio di backend, che contiene i valori di configurazione.
- Un controllo di integrità che analizzi le VM e i pod Google Kubernetes Engine (GKE) nel deployment.
- Con le API di routing dei servizi, una risorsa
MeshoGatewaye una risorsaRoute. - Con le API di bilanciamento del carico, una regola di forwarding globale che includa l'indirizzo VIP, un proxy di destinazione e una mappa URL.
Un proxy sidecar (come Envoy) compatibile con l'API xDS viene eseguito su un'istanza VM client o in un pod Kubernetes. Cloud Service Mesh funge da control plane e utilizza le API xDS per comunicare direttamente con ogni proxy. Nel piano dati, l'applicazione invia il traffico all'indirizzo VIP configurato nella regola di forwarding o nella risorsa Mesh. Il proxy sidecar o l'applicazione gRPC intercetta il traffico e lo reindirizza al backend appropriato.
Il seguente diagramma mostra un'applicazione in esecuzione su VM Compute Engine o pod GKE, i componenti e il flusso di traffico in un deployment di Cloud Service Mesh. Mostra Cloud Service Mesh e le risorse Cloud Load Balancing utilizzate per determinare il routing del traffico. Il diagramma mostra le API di bilanciamento del carico precedenti.
Passaggi successivi
- Per informazioni sulla configurazione delle funzionalità avanzate di bilanciamento del carico, consulta la panoramica del bilanciamento del carico avanzato.
- Per scoprire di più sul rilevamento dei servizi e sull'intercettazione del traffico, consulta Rilevamento dei servizi Cloud Service Mesh.
- Per saperne di più su Cloud Service Mesh con le API di routing dei servizi, consulta la panoramica.