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:

  1. Esamina una richiesta e la associa a un servizio di backend, una risorsa che configuri durante il deployment.
  2. 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 servizio payments.
  • Hai configurato una risorsa Mesh che definisce un mesh denominato sidecar-mesh.
  • Hai configurato una risorsa Route che definisce le destinazioni del traffico per il servizio di backend payments e il nome host helloworld-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