Regole di inoltro per Cloud Service Mesh

Questo documento si applica solo a Cloud Service Mesh con le API di bilanciamento del carico. Ti consigliamo vivamente di utilizzare le API di routing dei servizi per eseguire il deployment di Cloud Service Mesh.

Cloud Service Mesh utilizza la regola di forwarding per determinare il proxy di destinazione a cui viene indirizzato il traffico nel mesh.

Ogni regola di forwarding fornisce un singolo indirizzo IPv4 globale per un servizio. Puoi utilizzare questo indirizzo per creare record DNS interni per il tuo servizio (ad esempio utilizzando una zona privata gestita da Cloud DNS). I filtri dei metadati nella regola di forwarding specificano i criteri in base ai quali un proxy sidecar conforme a xDS riceve la configurazione.

Per il piano di controllo di Cloud Service Mesh, la regola di forwarding interna, autogestita e globale instrada il traffico in base all'indirizzo IP, alla porta e al protocollo a un proxy di destinazione. Il proxy di destinazione punta a una mappa URL contenente regole che determinano la destinazione del traffico. La mappa URL specifica anche il servizio di backend predefinito. Questo servizio di backend specifica un controllo di integrità e determina il backend appropriato, ad esempio un gruppo di istanze gestite (MIG) contenente istanze di macchine virtuali (VM) o un gruppo di endpoint di rete (NEG) contenente pod di backend Google Kubernetes Engine (GKE).

Il seguente diagramma mostra come una regola di forwarding si inserisce nell'architettura di Cloud Service Mesh.

Regola di forwarding di Cloud Service Mesh evidenziata.
Regola di regola di forwarding di Cloud Service Mesh evidenziata (fai clic per ingrandire)

Proprietà delle regole di forwarding

Una risorsa regola di forwarding contiene le seguenti proprietà che si applicano a Cloud Service Mesh. La regola di forwarding gestisce il traffico che corrisponde all'indirizzo IP, al protocollo e al numero di porta di destinazione.

Un indirizzo IP 0.0.0.0 in una regola di forwarding è una delle opzioni disponibili quando si utilizza Cloud Service Mesh. Un indirizzo IP 0.0.0.0 indica qualsiasi indirizzo IP.

  • Con un deployment del proxy, un indirizzo IP 0.0.0.0 consente a un proxy di associare qualsiasi traffico in entrata se non viene trovata un'altra corrispondenza specifica.

  • Con un deployment senza proxy, un indirizzo IP 0.0.0.0 consente di specificare che non è necessario un indirizzo IP. Di seguito sono riportati ulteriori dettagli sull'utilizzo degli indirizzi IP0.0.0.0 con un proxy gRPC di destinazione.

La tabella seguente descrive in modo più dettagliato le proprietà regola di forwarding.

Proprietà Obbligatorio Descrizione
name

Il nome della regola di forwarding.

Il nome deve essere univoco in questo progetto, da 1 a 63 caratteri e deve corrispondere all'espressione regolare: [a-z]([-a-z0-9]*[a-z0-9])?

Ciò significa che il primo carattere deve essere una lettera minuscola e tutti i caratteri successivi devono essere trattini, lettere minuscole o cifre, tranne l'ultimo carattere, che non può essere un trattino.

IPAddress

Uno dei seguenti: 0.0.0.0 o 127.0.0.1, oppure qualsiasi indirizzo RFC 1918.

Gli indirizzi IP per le regole di inoltro di Cloud Service Mesh non devono corrispondere agli intervalli di indirizzi IP delle subnet nella rete Virtual Private Cloud (VPC). Per una determinata rete VPC, indirizzo IP e porta, puoi avere una sola regola di forwarding interno autogestito.

Ad esempio, nella stessa rete VPC non puoi creare due regole di inoltro che utilizzano l'indirizzo IP 0.0.0.0 e la porta 80.

IPAddress con un proxy gRPC di destinazione

Una regola di forwarding che fa riferimento a un proxy gRPC di destinazione con il campo validateForProxyless impostato su TRUE e il relativo indirizzo IP impostato su 0.0.0.0.

Un client gRPC che utilizza lo schema xds non esegue la ricerca DNS per risolvere il nome host nell'URI del canale. Invece, questo client risolve il valore hostname[:port] nell'URI di destinazione inviando una richiesta al servizio di rilevamento dei listener (LDS) di Cloud Service Mesh. Non è richiesta alcuna ricerca DNS e non è necessaria una voce DNS per il nome host.

Di conseguenza, Cloud Service Mesh utilizza l'indirizzo IP 0.0.0.0 e la porta (80 predefinita) specificata nell'URI per cercare la regola di forwarding. Quindi, Cloud Service Mesh cerca una regola di abbinamento dell'host nella mappa URL del proxy di destinazione a cui fa riferimento la regola di inoltro.

target

Il proxy target a cui questa regola di forwarding indirizza il traffico. Cloud Service Mesh supporta target-http-proxy, target-https-proxy e target-grpc-proxy.

Quando utilizzi la console Google Cloud per configurare la regola di forwarding, il proxy di destinazione viene configurato automaticamente. Quando utilizzi Google Cloud CLI o l'API, il proxy di destinazione deve esistere prima di creare la regola di forwarding. Puoi utilizzare più di una regola di forwarding con un determinato proxy.

IPProtocol Il tipo di protocollo a cui corrisponde questa regola di forwarding. L'unico valore supportato è TCP.
loadBalancingScheme Specifica come viene utilizzata la regola di forwarding. Il valore valido per Cloud Service Mesh è INTERNAL_SELF_MANAGED.
portRange

Una porta o un intervallo di porte uniti da un trattino.

I pacchetti del protocollo specificato inviati a queste porte vengono inoltrati al backend appropriato. Puoi specificare un singolo numero di un intervallo, ad esempio 80 o 80-8080.

Per una determinata rete VPC, indirizzo IP e porta, puoi avere un'unica regola di forwarding interno autonomo. Ad esempio, nella stessa rete VPC non puoi creare due regole di inoltro che utilizzano l'indirizzo IP e la porta 0.0.0.0.80

Con i servizi gRPC proxyless, la porta nella regola di forwarding viene associata alla porta specificata nell'URI utilizzata da un'applicazione gRPC per connettersi a un servizio. Se nell'URI non è specificata una porta, 80 è la porta predefinita.

network

Specifica la rete VPC in cui si trovano le VM Google Cloud su cui vengono eseguiti i proxy Envoy.

I proxy Envoy leggono la configurazione di Cloud Service Mesh che definisci per la stessa rete in cui sono di stanza. Puoi utilizzare la rete VPC denominata default o una rete personalizzata.

Cloud Service Mesh supporta il bilanciamento del carico per i client solo all'interno della rete di Google Cloud. Specifica il nome della rete nella regola di forwarding. Il peering di rete VPC non è supportato.

Aggiungere una regola di forwarding globale

Per scoprire come configurare una regola di forwarding all'interno della configurazione complessiva di Cloud Service Mesh con le API di bilanciamento del carico, consulta quanto segue:

Passaggi successivi