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 eseguito su una VM o un contenitore che formula le richieste da inviare a un server. R server è il codice dell'applicazione che riceve tali 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 esegue le seguenti operazioni:

  1. esamina una richiesta e la associa a un servizio di backend. e una risorsa configurata 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 fornisce il rilevamento dei servizi. 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 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, il discovery dei servizi 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 VPC (Virtual Private Cloud) specificata nel file di bootstrap di Envoy.

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

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

Passaggi successivi