Service Discovery
Cloud Service Mesh fornisce il rilevamento di servizi ed endpoint. Queste funzionalità consentono di raggruppare le istanze di macchine virtuali (VM) e di container il tuo codice come endpoint dei tuoi servizi.
Cloud Service Mesh monitora questi servizi in modo da poter condividere informazioni aggiornate sui controlli di integrità con i propri clienti. Pertanto, quando una delle tue applicazioni utilizza la sua Client Cloud Service Mesh (ad esempio un proxy sidecar Envoy o un un'applicazione gRPC proxyless) per inviare una richiesta, può sfruttare i vantaggi informazioni sui tuoi servizi.
Nel contesto di Cloud Service Mesh, un client è il codice dell'applicazione eseguito su una VM o un contenitore che formula le richieste da inviare a un server. Un server è il codice dell'applicazione che riceve queste richieste. Un client Cloud Service Mesh è un client Envoy, gRPC o un altro client xDS che è connesso a Cloud Service Mesh e fa parte del piano dati.
Nel piano dati, Envoy o gRPC eseguono le seguenti operazioni:
- esamina una richiesta e la associa a un servizio di backend. e una risorsa configurata durante il deployment.
- Dopo la corrispondenza della richiesta, Envoy o gRPC applica eventuali criteri di sicurezza o di traffico configurati in precedenza, sceglie un backend o un endpoint e indirizza la richiesta a quel backend o endpoint.
Service Discovery
Cloud Service Mesh fornisce il rilevamento dei servizi. Quando configuri Cloud Service Mesh, crei servizi di backend. Inoltre, definisci regole di routing che specificano in che modo una richiesta in uscita (una richiesta inviata dal codice dell'applicazione e gestita da un client Cloud Service Mesh) viene associata a un determinato servizio. Quando un client Cloud Service Mesh gestisce una richiesta che corrisponde a una regola, può scegli il servizio che deve ricevere la richiesta.
Ad esempio:
- Hai una VM che esegue la tua applicazione. Questa VM ha un proxy sidecar Envoy collegato a Cloud Service Mesh e che gestisce le richieste in uscita dell'applicazione.
- Hai configurato un servizio di backend denominato
payments
. Questo servizio di backend ha due backend di gruppo di endpoint di rete (NEG) che rimandano a varie istanze di contenitore che eseguono il codice per il serviziopayments
. - Hai configurato una risorsa
Mesh
che definisce un mesh denominatosidecar-mesh
. - Hai configurato una risorsa
Route
che definisce le destinazioni del traffico per il servizio di backendpayments
e il nome hosthelloworld-gce
.
Con questa configurazione, quando l'applicazione (sulla VM) invia una richiesta HTTP
a payments.example.com
, il client Cloud Service Mesh sa che
la richiesta è destinata al servizio payments
.
Quando utilizzi Cloud Service Mesh con servizi gRPC senza proxy, Service Discovery funziona in modo simile. Tuttavia, una libreria gRPC che agisce come client di Cloud Service Mesh riceve solo informazioni sui servizi per i quali specifichi un risolutore xDS. Per impostazione predefinita, Envoy riceve informazioni su tutti i servizi configurati nel Rete Virtual Private Cloud (VPC) specificata nel file di bootstrap di Envoy.
Rilevamento endpoint
Il rilevamento dei servizi consente ai client di conoscere i tuoi servizi. La scoperta degli endpoint consente ai client di conoscere le istanze in cui viene eseguito il codice.
Quando crei un servizio, specifichi anche i backend per completamente gestito di Google Cloud. Questi backend sono VM in gruppi di istanze gestite (MIG) o contenuti in NEG. Cloud Service Mesh monitora questi MIG e NEG in modo da sapere quando vengono create e rimosse istanze ed endpoint.
Cloud Service Mesh condivide continuamente informazioni aggiornate su questi servizi con i propri clienti. Questa informazione consente ai client di evitare verso endpoint che non esistono più. Inoltre, consente ai clienti di conoscere i nuovi endpoint e di sfruttare la capacità aggiuntiva che offrono.
Oltre ad aggiungere endpoint ai MIG o NEG e a configurare Cloud Service Mesh, non è necessaria alcuna configurazione aggiuntiva per abilitare Service Discovery Cloud Service Mesh.
Intercettazione del traffico proxy sidecar in Cloud Service Mesh
Cloud Service Mesh supporta il modello proxy sidecar. In base a questo modello, quando un'applicazione invia il traffico alla sua destinazione, il traffico viene intercettato e lo ha reindirizzato a una porta sul proxy sidecar sull'host in cui l'applicazione in esecuzione. Il proxy sidecar decide come bilanciare il carico del traffico e poi lo invia alla destinazione.
Con Cloud Service Mesh e le API di routing dei servizi, l'intercettazione del traffico viene gestita automaticamente.
Passaggi successivi
- Per scoprire in che modo Cloud Service Mesh offre il bilanciamento del carico globale per il tuo di microservizi interni con proxy sidecar, vedi Bilanciamento del carico di Cloud Service Mesh.
- Per scoprire di più su Cloud Service Mesh, consulta la panoramica di Cloud Service Mesh.