Service Discovery
Cloud Service Mesh fornisce il rilevamento di servizi ed endpoint. Queste funzionalità ti consentono di raggruppare le istanze di macchine virtuali (VM) e le istanze di container che eseguono il tuo codice come endpoint dei tuoi servizi.
Cloud Service Mesh monitora questi servizi in modo da poter condividere informazioni aggiornate sul controllo di integrità con i suoi client. Pertanto, quando una delle tue applicazioni utilizza il client Cloud Service Mesh (ad esempio un proxy sidecar Envoy o un'applicazione gRPC senza proxy) per inviare una richiesta, beneficia di informazioni aggiornate sui tuoi servizi.
Nel contesto di Cloud Service Mesh, un client è un codice applicativo che viene eseguito su una VM o un container che formula richieste da inviare a un server. Un server è un codice dell'applicazione che riceve queste richieste. Un client Cloud Service Mesh è un client Envoy, gRPC o xDS che è connesso a Cloud Service Mesh e fa parte del data plane.
Nel piano dati, Envoy o gRPC esegue le seguenti operazioni:
- Esamina una richiesta e la associa a un servizio di backend, una risorsa che configuri durante il deployment.
- Una volta che la richiesta viene abbinata, Envoy o gRPC applica le policy di sicurezza o di traffico configurate in precedenza, sceglie un backend o un endpoint e indirizza la richiesta a quel backend o endpoint.
Service Discovery
Cloud Service Mesh fornisce Service Discovery. Quando configuri Cloud Service Mesh, crei servizi di backend. Definisci anche le regole di routing che specificano come una richiesta in uscita (una richiesta inviata dal codice dell'applicazione e gestita da un client Cloud Service Mesh) viene associata a un servizio specifico. Quando un client Cloud Service Mesh gestisce una richiesta che corrisponde a una regola, può scegliere il servizio che deve ricevere la richiesta.
Ad esempio:
- Hai una VM che esegue la tua applicazione. Questa VM ha un proxy sidecar Envoy che è connesso a Cloud Service Mesh e gestisce le richieste in uscita per conto dell'applicazione.
- Hai configurato un servizio di backend denominato
payments
. Questo servizio di backend ha due backend di gruppi di endpoint di rete (NEG) che puntano a varie istanze di container che eseguono il codice per il serviziopayments
. - Hai configurato una risorsa
Mesh
che definisce una mesh chiamatasidecar-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
questa richiesta è destinata al servizio payments
.
Quando utilizzi Cloud Service Mesh con i servizi gRPC senza proxy, Service Discovery funziona in modo simile. Tuttavia, una libreria gRPC che funge da client Cloud Service Mesh riceve informazioni solo sui servizi per i quali specifichi un resolver xDS. Per impostazione predefinita, Envoy riceve informazioni su tutti i servizi configurati nella rete Virtual Private Cloud (VPC) specificata nel file di bootstrap di Envoy.
Rilevamento degli endpoint
Service Discovery consente ai client di conoscere i tuoi servizi. Il rilevamento degli endpoint consente ai client di conoscere le istanze che eseguono il tuo codice.
Quando crei un servizio, specifichi anche i backend per quel servizio. Questi backend sono VM in gruppi di istanze gestite (MIG) o container in NEG. Cloud Service Mesh monitora questi MIG e NEG in modo da sapere quando vengono creati e rimossi istanze ed endpoint.
Cloud Service Mesh condivide continuamente informazioni aggiornate su questi servizi con i suoi clienti. Queste informazioni consentono ai client di evitare di inviare traffico a endpoint che non esistono più. Consente inoltre ai client di scoprire nuovi endpoint e sfruttare la capacità aggiuntiva che questi endpoint forniscono.
Oltre ad aggiungere endpoint a MIG o NEG e configurare Cloud Service Mesh, non è necessaria alcuna configurazione aggiuntiva per abilitare Service Discovery con Cloud Service Mesh.
Intercettazione del traffico proxy sidecar in Cloud Service Mesh
Cloud Service Mesh supporta il modello di proxy sidecar. In questo modello, quando un'applicazione invia traffico alla sua destinazione, il traffico viene intercettato e reindirizzato a una porta del proxy sidecar sull'host in cui è in esecuzione l'applicazione. 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 come Cloud Service Mesh offre il bilanciamento del carico globale per i tuoi microservizi interni con proxy sidecar, consulta Bilanciamento del carico di Cloud Service Mesh.
- Per saperne di più su Cloud Service Mesh, consulta la panoramica di Cloud Service Mesh.