Integrazione di Cloud Service Mesh con Service Directory

Questo documento fornisce una panoramica su come utilizzare Service Directory con Cloud Service Mesh, che consente a Cloud Service Mesh di instradare il traffico ai servizi registrati in Service Directory e applicarli. Questo documento è rivolto agli sviluppatori di Cloud Service Mesh che vogliono integrare il proprio con altri servizi in Google Cloud.

Service Directory è un registro di servizi che memorizza informazioni sui servizi di rete registrati, inclusi nomi, località e attributi. Puoi registrare i tuoi servizi automaticamente, acquisire tutti i dettagli e registrare tutti i servizi, a prescindere dalla loro infrastruttura.

Il registry può contenere non solo servizi Google Cloud, ma anche servizi ibridi in esecuzione on-premise o in altri cloud pubblici. Per comprendere al meglio informazioni riportate in questo documento, ti consigliamo di acquisire familiarità con le nozioni di base delle operazioni di Service Directory.

Quando utilizzi il registro dei servizi di Service Directory con Cloud Service Mesh, l'integrazione rende i servizi nel registro dei servizi disponibili per le applicazioni nel tuo mesh e per i gateway configurati Cloud Service Mesh. Integrazione di Cloud Service Mesh con Service Directory è supportato, con Envoy e con il proxyless gRPC, per le integrazioni di Service Directory con bilanciatori del carico di rete passthrough interni, bilanciatori del carico delle applicazioni interni ed L4 Private Service Connect.

Per integrare i tuoi servizi, devi registrare un servizio con Service Directory, quindi associa il servizio a Cloud Service Mesh di servizio di backend. Dopo aver stabilito un'associazione, Cloud Service Mesh esegue query Service Directory per ottenere informazioni sull'account e come è possibile raggiungerlo. Cloud Service Mesh monitora anche modifiche al servizio. L'uso dell'integrazione consente al tuo mesh di servizi e gateway gestito per l'invio del traffico a questi servizi. Ti consente inoltre di applicare ad esempio i criteri avanzati di gestione del traffico, che e la configurazione in Cloud Service Mesh.

Quando utilizzi questa integrazione, l'associazione dei servizi agisce come backend, indipendentemente del tipo di backend usato dal servizio stesso. L'integrazione semplifica del deployment Cloud Service Mesh, perché Cloud Service Mesh può inviare traffico del servizio senza tenere conto del tipo di backend.

Quando un servizio è registrato in Service Directory, non devi devi configurare gruppi di istanze o diversi tipi di gruppi di endpoint di rete per ottenere l'accesso ai servizi di cui hai bisogno. Puoi registrarti automaticamente Google Kubernetes Engine, bilanciatori del carico interni e Private Service Connect a Service Directory, semplificando ulteriormente la gestione l'accesso a questi servizi.

Risorse utilizzate dall'integrazione

Integrazione tra Cloud Service Mesh e Service Directory utilizza le seguenti risorse.

Servizi Service Directory

Service Directory è un registro di servizi. Service Directory consente di registrare vari tipi di servizi, inclusi i servizi basati su Google Cloud o altri ambienti (ad ad esempio, un data center on-premise). Ogni servizio è composto da un nome univoco con zero o più endpoint di servizio. Un endpoint di servizio è costituito da un indirizzo, una porta proprietà e metadati. Se non sono presenti endpoint,non è possibile instradare il traffico al servizio.

Associazioni dei servizi

Un'associazione di servizi è una risorsa che include il nome di dominio completo (FQDN) del servizio Service Directory. Ad esempio: projects/test-proj/locations/us-east1/namespaces/test-namespace/services/test-service è un nome di dominio completo per un servizio Service Directory.

Servizi di backend

I servizi di backend sono risorse di configurazione che forniscono informazioni Cloud Service Mesh, inclusi i backend, come i gruppi di istanze gestite, che il servizio di backend instrada il traffico. Servizi di backend che fanno riferimento le associazioni di servizi non possono avere backend. Per utilizzare l'integrazione di Cloud Service Mesh con Service Directory, crei un nuovo servizio di backend di riferimento alle associazioni dei servizi.

Un servizio di backend può avere più associazioni di servizi. Questa configurazione è utile quando si hanno deployment a livello di regione un'applicazione. Puoi registrare ogni deployment a livello di regione in un'istanza a livello di regione di Service Directory, come servizio regionale 1 e servizio regionale 2. Ognuno di questi servizi Service Directory regionali può quindi associati allo stesso servizio di backend, utilizzando due associazioni di servizi. Globali l'associazione 1 del servizio verrà associata al servizio regionale 1 nella regione A e L'associazione 2 del servizio globale verrà associata al servizio regionale 2 nella regione B.

Casi d'uso

Integrazione del deployment di Cloud Service Mesh con Service Directory consente nuovi casi d'uso utili quando dipendi da servizi che altri che team o organizzazioni possiedono o pubblicano.

Rendi disponibili i servizi esistenti per Cloud Service Mesh

Service Directory si integra con i prodotti Google Cloud come GKE, bilanciatori del carico di rete passthrough interni e bilanciatori del carico delle applicazioni interni. Quando i producer di servizi creano un servizio GKE o un bilanciatore del carico, possono registrarlo con Service Directory.

Dopo aver registrato un servizio in Service Directory, puoi configurare Cloud Service Mesh per comunicare con il servizio. Cloud Service Mesh i client possono quindi comunicare con i servizi eseguiti bilanciatori del carico di rete passthrough interni e bilanciatori del carico delle applicazioni interni.

Migliora il coordinamento tra producer di servizi e consumer

Le grandi imprese hanno molti team di sviluppatori indipendenti. Questi team disponibili ad altri team, in modo che più team possano utilizzare le funzionalità forniti dal servizio condiviso. Questo crea dipendenze tra team. Mentre queste dipendenze consentono ai team di condividere i propri sforzi, anche le dipendenze sull'overhead per il coordinamento.

Quando utilizzi Service Directory, un team (il producer) registra un servizio che intende rendere disponibile ad altri team o organizzazioni (consumatori). Il producer condivide un riferimento a questo servizio con un consumatore. Il consumatore può utilizzare questo riferimento per cercare il in Service Directory e rilevare il loro endpoint. Ad esempio, l'endpoint potrebbe essere un indirizzo IP virtuale (VIP) che il servizio del producer prevede di ricevere traffico.

L'integrazione di Cloud Service Mesh con Service Directory ti consente automatizzare il processo associando un servizio Service Directory a un Servizio di backend Cloud Service Mesh, che presenta i seguenti vantaggi:

  • Cloud Service Mesh risolve automaticamente gli endpoint del servizio sincronizzandole da Service Directory. Se gli endpoint del servizio Service Directory vengono aggiornati, Cloud Service Mesh sincronizza automaticamente queste modifiche.
  • Puoi impostare diversi criteri di gestione del routing e del traffico, ad esempio: i timeout in Cloud Service Mesh. Queste norme ti consentono di ottimizzare il modo in cui le applicazioni inviano richieste al servizio Service Directory. Per informazioni su routing e gestione del traffico in Cloud Service Mesh, consulta Gestione avanzata del traffico.
  • Cloud Service Mesh utilizza funzionalità di gestione del traffico come bilanciamento del carico basato sulla prossimità per indirizzare in modo ottimale il traffico le applicazioni agli endpoint, ad esempio riducendo al minimo il tempo di round trip.
. Utilizzo di Service Directory per Service Discovery.
Utilizzo di Service Directory per Service Discovery (fai clic per ingrandire)

Quando tu, come consumer, utilizzi Cloud Service Mesh e colleghi un servizio di backend a un servizio Service Directory, l'overhead di coordinamento tra team è ridotto.

  • Puoi collegare il servizio Payments per nome.
  • Cloud Service Mesh condivide informazioni sul servizio Payments con il suo clienti.

    • Ad esempio, i proxy sidecar in esecuzione nel mesh di servizi ora conosci l'endpoint (ad esempio 10.0.0.1:80) a cui il servizio è raggiungibile.
  • Le tue applicazioni possono chiamare questo servizio per nome senza di te o all'applicazione se vogliono sapere qualcosa sulla gestione endpoint. Nel diagramma, il servizio è il servizio Payments.

  • Quando il producer di servizi aggiorna il servizio esterno (ad esempio, modificando l'endpoint), Cloud Service Mesh rileva l'aggiornamento e la condivide con i suoi clienti.

Accedi ai servizi all'interno di un perimetro utilizzando un punto di ingresso

Un team potrebbe raggruppare una raccolta di servizi all'interno di Controlli di servizio VPC perimetro ed esporre questi servizi attraverso un singolo punto di ingresso. Questo Il punto in entrata può essere registrato in Service Directory e reso disponibile per gli utenti che vogliono accedere ai servizi all’interno del perimetro. Per per saperne di più sui perimetri Controlli di servizio VPC, consulta e configurazione del perimetro.

Ad esempio, un team crea un gateway in entrata utilizzando un bilanciatore del carico delle applicazioni interno che distribuisce le richieste a una raccolta di servizi Kubernetes in un cluster. Questo il gateway in entrata viene automaticamente registrato come servizio Service Directory. Un consumatore che vuole accedere a Kubernetes possono cercare questo gateway in entrata in Service Directory. Il consumer può quindi configurare il mesh di Cloud Service Mesh per accedere ai servizi all'interno del perimetro tramite il gateway.

Connetti i servizi tra i domini

Potresti dover connettere servizi in domini diversi.

Connetti i servizi tra le organizzazioni

Potresti avere bisogno di accedere a servizi di proprietà di un'altra organizzazione, ad esempio Google API (ad esempio Cloud SQL) o servizi gestiti di terze parti.

Service Directory supporta Private Service Connect. Quando crei un endpoint Private Service Connect in l'endpoint può essere registrato come servizio Service Directory. Puoi quindi collegare questo servizio a Cloud Service Mesh, in modo che i client mesh, come Envoy e i client gRPC, e I gateway autogestiti, come Apigee, possono chiamare questi servizi.

Utilizzo di Service Directory per Service Discovery con Private Service Connect.
Utilizzo di Service Directory per Service Discovery con Private Service Connect (fai clic per ingrandire)

L'esempio precedente, utilizzando Cloud Storage, illustra come utilizzare Private Service Connect per chiamare le API di Google utilizzando un endpoint in la tua rete Virtual Private Cloud.

Connetti servizi su reti VPC

Alcune aziende utilizzano più reti VPC come parte deployment di Google Cloud. In questi casi, un servizio in una La rete VPC potrebbe dover accedere a un servizio rete VPC. Puoi configurare il peering VPC per accedere a un servizio in un'altra rete VPC, complicazioni in caso di sovrapposizione di indirizzi IP tra reti in peering.

Private Service Connect può creare un servizio in modo sicuro e privato in una rete VPC accessibile ai servizi in un'altra rete VPC, utilizzando un singolo endpoint IP:port.

Visualizzazione dettagliata dell'utilizzo di Service Directory per Service Discovery con Private Service Connect.
Visualizzazione dettagliata dell'utilizzo di Service Directory per Service Discovery con Private Service Connect (fai clic per ingrandire)

Altri esempi in più domini

I due esempi precedenti illustrano casi in cui potrebbe essere necessario domini, ma ci sono molti altri esempi. Ad esempio, crei una che si trova all'intersezione tra due regioni Google Cloud. Servizi in una regione può raggiungere servizi in un'altra regione attraverso questo gateway. Tu registrare il gateway come servizio in Service Directory, quindi utilizzare il gateway con Cloud Service Mesh, come descritto in questo documento.

Applica i criteri quando si accede ai servizi

Cloud Service Mesh supporta funzionalità come la gestione avanzata del traffico che configurabili tramite criteri. Ad esempio, puoi impostare un mirroring del traffico in modo che ogni volta che un client invia una richiesta a un particolare servizio di backend, il traffico viene anche inviato a un secondo servizio di backend.

Quando colleghi un servizio Service Directory a Cloud Service Mesh di servizio di backend, puoi configurare questi tipi di criteri in Cloud Service Mesh. I proxy collaterali, i proxy medi o perimetrali e i client senza proxy vengono a conoscenza questi criteri e applicarli.

Alcuni esempi:

  • Suddivisione del traffico in base alla ponderazione, ad esempio tra due Servizi Service Directory
  • Mirroring del traffico, ad esempio verso un servizio di controllo
. Le richieste per il servizio "utenti" vengono sottoposte a mirroring al servizio "audit"
Le richieste per il servizio users vengono riportate al servizio audit (fai clic per ingrandire)

Supporto per Cloud Service Mesh e client esistenti

Anche quando viene eseguito il deployment di Cloud Service Mesh nella tua organizzazione, potresti che non utilizzano Cloud Service Mesh. Ad esempio, potresti dover accedere un servizio da una macchina virtuale che non fa parte di un mesh di servizi.

Quando colleghi un servizio Service Directory a Cloud Service Mesh di servizio di backend, i client di Cloud Service Mesh si aggiornano automaticamente informazioni su quel servizio. I tuoi clienti che non utilizzano Cloud Service Mesh può cercare e utilizzare le informazioni sui servizi in Service Directory.

Limitazioni

Cloud Service Mesh non supporta i NEG FQDN (INTERNET_FQDN_PORT NEG) nel Integrazione di Service Directory.

Passaggi successivi