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 sui controlli di integrità con i propri clienti. Pertanto, quando una delle tue applicazioni utilizza il proprio 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 è 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 di Cloud Service Mesh è un client Envoy, gRPC o di altro tipo xDS collegato 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, una risorsa che configuri 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 Service Discovery. 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ò scegliere il servizio che deve riceverla.
Ad esempio:
- Hai una VM in cui è in esecuzione la tua applicazione. Questa VM ha un proxy sidecar Envoy collegato 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 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 proxyless, 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 sulla rete Virtual Private Cloud (VPC) specificata nel file di bootstrap di Envoy.
Rilevamento degli endpoint
La scoperta 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 quel servizio. 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. Queste informazioni consentono ai client di evitare di inviare traffico a 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 ai NEG e a 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 microservizi interni con i proxy sidecar, consulta Bilanciamento del carico di Cloud Service Mesh.
- Per scoprire di più su Cloud Service Mesh, consulta la panoramica di Cloud Service Mesh.