Panoramica delle mappe di regole di routing
Questo documento riguarda solo Cloud Service Mesh con le API di bilanciamento del carico. Me ti consigliamo vivamente di utilizzare API di routing dei servizi.
Una mappa di regole di routing è costituita da:
- Una regola di forwarding che fa riferimento a un proxy di destinazione
- Un proxy di destinazione che fa riferimento a una Mappa URL
- Una mappa URL contenente varie regole di routing
Quando crei e configuri queste risorse per Cloud Service Mesh, Cloud Service Mesh utilizza i valori per creare la configurazione invia al tuo piano dati, che include i client xDS come Envoy e applicazioni gRPC senza proxy. Il piano dati gestisce quindi il traffico in base a questa configurazione.
Una regola di forwarding fa riferimento a un proxy di destinazione e ha un indirizzo IP e una porta.
Per i deployment di Cloud Service Mesh, lo schema di bilanciamento del carico della regola di inoltro deve essere impostato su INTERNAL_SELF_MANAGED
. Il proxy di destinazione, a sua volta,
fa riferimento a una mappa URL. Queste tre risorse si combinano per formare una mappa di regole di routing.
Una regola di inoltro che fa riferimento a un proxy gRPC di destinazione con il
validateForProxyless
campo impostato su TRUE
deve avere l'indirizzo IP impostato su
0.0.0.0
. Se il criterio validateForProxyless
è impostato su TRUE
, le configurazioni
specificare un indirizzo IP diverso da 0.0.0.0
vengono rifiutate.
La mappa delle regole di routing definisce il modo in cui il traffico passa dai client ai server all'interno di un mesh di servizi.
Tipi di proxy di destinazione supportati
Cloud Service Mesh supporta i seguenti tipi di proxy di destinazione:
- Proxy HTTP di destinazione, che configuri quando i client e i server inviano o ricevono traffico HTTP o HTTP/2.
- Proxy HTTPS di destinazione, che configuri quando i client e i server inviano o ricevono traffico HTTPS. Questo è necessario quando configuri la sicurezza del servizio con i proxy Envoy.
- Proxy TCP di destinazione, che configuri quando i client e i server inviano o ricevono traffico TCP.
- Proxy gRPC di destinazione, che viene configurato quando i client e i server inviano
o ricevere traffico gRPC. I proxy gRPC di destinazione contengono il campo
validateForProxyless
, che viene impostato suTRUE
quando esegui il deployment di servizi gRPC proxyless.
Routing del traffico con i proxy sidecar Envoy
Quando utilizzi Cloud Service Mesh con i proxy sidecar Envoy, le richieste del client vengono indirizzate come segue:
- Lo stack di rete intercetta la richiesta e la reindirizza al proxy sidecar Envoy.
- Il proxy sidecar di Envoy controlla l'indirizzo IP e la porta della richiesta.
- L'indirizzo IP e la coppia di porte vengono verificati in base a indirizzo IP e porta
specificato in tutte le regole di forwarding che hanno lo schema di bilanciamento del carico impostato su
INTERNAL_SELF_MANAGED
. - Se viene trovata una regola di inoltro con un indirizzo IP e una porta corrispondenti, Envoy esamina il proxy HTTP o il proxy gRPC di destinazione a cui fa riferimento la regola di inoltro.
- Envoy controlla la mappa URL a cui fa riferimento il proxy di destinazione.
- Envoy instrada la richiesta in base alle regole specificate nella mappa URL.
Per informazioni su come il traffico viene instradato con un proxy TCP di destinazione, vedi Routing del traffico TCP con Cloud Service Mesh
Routing del traffico con applicazioni gRPC senza proxy
Questo comportamento è diverso per le applicazioni gRPC senza proxy. Quando configuri
un client gRPC, devi specificare l'URI di destinazione del servizio che il client
deve contattare. Questo URI utilizza lo schema di risoluzione dei nomi xds
e il formato hostname:port
, ad esempio xds:///example.hostname:8080
.
Quando il client gRPC senza proxy si connette a Cloud Service Mesh, Cloud Service Mesh invia le informazioni corrispondenti al servizio come segue:
- Cloud Service Mesh cerca le regole di forwarding con lo schema di bilanciamento del carico
imposta su
INTERNAL_SELF_MANAGED
per trovare le regole di forwarding la cui porta corrisponde la porta specificata nell'URI di destinazione. - Cloud Service Mesh trova il proxy gRPC di destinazione o il proxy HTTP di destinazione per ciascuna di queste regole di inoltro.
- Cloud Service Mesh trova le mappe di URL a cui fanno riferimento questi proxy gRPC o HTTP di destinazione.
- Cloud Service Mesh controlla le regole host nella mappa URL, che hanno anche il formato
hostname[:port]
, e cerca una corrispondenza. - Quando viene trovata una corrispondenza, Cloud Service Mesh restituisce le regole di routing e le informazioni di servizio al client gRPC.
Se viene trovata più di una corrispondenza, il comportamento non è definito e può portare a comportamenti imprevedibili. Questo accade in genere quando si verificano entrambe le seguenti condizioni:
- Lo stesso nome host viene utilizzato in più mappe URL.
- Più regole di forwarding con lo schema di bilanciamento del carico
INTERNAL_SELF_MANAGED
specificano la stessa porta.
Per questo motivo, ti consigliamo di non riutilizzare lo stesso nome host in più mappe URL a cui fanno riferimento le regole di inoltro che specificano la stessa porta.
Passaggi successivi
Per avere un controllo dettagliato sulla modalità di gestione del traffico, consulta la sezione Panoramica della gestione avanzata del traffico.
Per scoprire di più su Cloud Service Mesh, consulta la panoramica di Cloud Service Mesh.