Service Discovery

Cloud Service Mesh consente di scoprire 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 affinché possano condividere informazioni aggiornate sul controllo 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 in esecuzione su una VM o un container che formula 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:

  1. esamina una richiesta e la associa a un servizio di backend. una risorsa che configuri durante il deployment.
  2. Una volta trovata la richiesta, Envoy o gRPC applica qualsiasi configurazione precedentemente configurata i criteri di sicurezza o del traffico, sceglie un backend o un endpoint e indirizza la richiesta al backend o all'endpoint.

Service Discovery

Cloud Service Mesh offre Service Discovery. Quando configuri Cloud Service Mesh, tu crei i servizi di backend. Devi definire anche le regole di routing che specificano come una richiesta in uscita (ovvero inviata dal codice dell'applicazione) e gestiti da un client Cloud Service Mesh) sono abbinate a un particolare 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 in cui è in esecuzione 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 gruppi di endpoint di rete (NEG) che puntano a vari istanze che eseguono il codice per il tuo 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 questa richiesta è destinata al servizio payments.

Quando utilizzi Cloud Service Mesh con servizi gRPC proxyless, il discovery dei servizi funziona in modo simile. Tuttavia, una libreria gRPC che funge da client Cloud Service Mesh ottiene soltanto informazioni sui servizi per i quali hai specificato un resolver 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 degli endpoint

Service Discovery consente ai clienti di conoscere i tuoi servizi. Endpoint consente ai client di conoscere le istanze che eseguono le API nel tuo codice.

Quando crei un servizio, specifichi anche i backend per quel servizio. Questi backend sono VM in gruppi di istanze gestite dei container nei NEG. Cloud Service Mesh monitora questi MIG e NEG in modo che sa quando vengono create e rimosse istanze ed endpoint.

Cloud Service Mesh condivide continuamente informazioni aggiornate su questi con i propri clienti. Questa informazione consente ai client di evitare verso endpoint che non esistono più. Inoltre, permette ai clienti di apprendere sui nuovi endpoint e sfruttare la capacità aggiuntiva offerte da questi endpoint.

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 quindi e invia il traffico alla sua destinazione.

Con Cloud Service Mesh e le API di routing dei servizi, l'intercettazione del traffico gestiti automaticamente.

Passaggi successivi