Riferimento API GKE Cloud Service Mesh

Questo documento è il riferimento API per Cloud Service Mesh con l'API Kubernetes Gateway.

TDMesh

Campo Descrizione
apiVersion string
net.gke.io/v1alpha1
kind stringa
TDMesh
metadata ObjectMeta Kubernetes
spec MeshSpec
status MeshStatus

MeshSpec

Campo Descrizione
allowedRoutes gateway.networking.k8s.io/v1.AllowedRoutes
gatewayClassName stringa
gke-td

MeshStatus

Campo Descrizione
conditions Il campo delle condizioni descrive le condizioni attuali del mesh.
Tipi di condizioni noti:
  • Pianificato
  • Pronto
Per saperne di più, consulta Kubernetes meta/v1.23Condition.

GatewayClass

Consulta la documentazione di riferimento per GatewayClass.

TDGRPCRoute

TDGRPCRoute specifica il comportamento di routing delle richieste gRPC da un listener TDMesh o Gateway a un oggetto API, ad esempio Service.

Campo Descrizione
apiVersion string
net.gke.io/v1alpha1
kind stringa
TDGRPCRoute
metadata metav1.23ObjectMeta
spec GRPCRouteSpec
Definisce lo stato preferito di "GRPCRoute".
Status GRPCRouteStatus
Uguale a HTTPRouteStatus.

GRPCRouteSpec

La specifica di un TDGRPCRoute è costituita dai valori riportati nella seguente tabella:

Campo Descrizione
CommonRouteSpec CommonRouteSpec
Hostnames []Nome host
I nomi host definiscono un insieme di nomi host che devono corrispondere all'intestazione Host gRPC per selezionare un GRPCRoute per elaborare la richiesta.

Hostname è il nome di dominio completo di un host di rete, come definito dallo standard RFC 3986. Nota le seguenti deviazioni dalla parte "host" dell'URI, come definito nel documento RFC:
  • Gli indirizzi IP non sono consentiti.
  • Il delimitatore ":" non è rispettato perché le porte non sono consentite.
Le richieste in entrata vengono confrontate con i nomi host prima delle regole TDGRPCRoute. Se non viene specificato alcun nome host, il traffico viene instradato in base a GRPCRouteRules.

Hostname può essere "precise", ovvero un nome di dominio senza il punto

terminale di un host di rete (ad esempio, butterfly.example.com) o wildcard, ovvero un nome di dominio preceduto da una singola etichetta carattere jolly, ad esempio "*.example.com". Il carattere jolly "*" deve essere visualizzato da solo come prima etichetta DNS e corrisponde solo a una singola etichetta. Non puoi avere di per sé un'etichetta con caratteri jolly (ad esempio Host == "*"). Le richieste vengono confrontate con il campo "Host" nel seguente ordine:
  • Se Host è preciso, la richiesta corrisponde a questa regola se l'intestazione host gRPC è uguale a Host.
  • Se Host è un carattere jolly, la richiesta corrisponde a questa regola se l'intestazione host gRPC è uguale al suffisso (rimuovendo la prima etichetta) della regola con caratteri jolly.
Rules []GRPCRouteRule
Definisce un elenco di matcher, filtri e azioni gRPC.

GRPCRouteRule

Le regole definiscono la semantica per la corrispondenza di una richiesta gRPC in base alle condizioni e, facoltativamente, inoltrano la richiesta a un oggetto API. Le regole sono costituite da:

Campo Descrizione
Matches GRPCRouteMatch
Definisce le condizioni utilizzate per la corrispondenza di una richiesta gRPC. Ogni corrispondenza è indipendente. In altre parole, questa regola ha una corrispondenza se viene soddisfatta anche una sola corrispondenza.
BackendRefs []GRPCBackendRef

Definisce i backend a cui devono essere inviate le richieste corrispondenti. Se non specificato o non valido (fa riferimento a una risorsa inesistente o a un servizio senza endpoint), la regola non esegue alcun forwarding.

GRPCBackendRef è uguale a HTTPBackendRef.
GRPCRouteMatch

Le regole definiscono la semantica per la corrispondenza di una richiesta gRPC in base alle condizioni e, facoltativamente, inoltrano la richiesta a un oggetto API. Le regole sono definite come segue:


Campo

Descrizione
Metodo GRPCMethodMatch

Definisce un metodo gRPC con cui trovare una corrispondenza.
Intestazioni []GRPCHeaderMatch
Definisce un matcher dell'intestazione della richiesta gRPC. Più valori di corrispondenza sono combinati con un'operazione AND, il che significa che una richiesta deve corrispondere a tutte le intestazioni specificate per selezionare la route.
Nota: la definizione di GRPCHeaderMatch è la stessa di "HTTPHeaderMatch".
GRPCMethodMatch

GRPCMethodMatch è costituito da:

Campo Descrizione
Tipo MethodMatchType

Definisce il tipo che specifica come trovare una corrispondenza con il nome. Se non specificato, viene utilizzato il valore predefinito EXACT. Puoi scegliere EXACT o RegularExpression.
Servizio string

Definisce il nome del servizio con cui trovare una corrispondenza. Se non specificato, corrisponderà a tutti i servizi.
Metodo string

Definisce il metodo con cui creare una corrispondenza. Se non specificato, corrisponderà a tutti i metodi.
GRPCHeaderMatch

GRPCHeaderMatch è costituito da:

Campo Descrizione
Tipo HeaderMatchType

Definisce come trovare una corrispondenza con il valore dell'intestazione.
Nome Stringa

Il nome è il nome dell'intestazione gRPC da trovare. La corrispondenza dei nomi deve senza distinzione tra maiuscole e minuscole. (vedi https://tools.ietf.org/html/rfc7230#section-3.2).
Valore Stringa

Il valore è il valore dell'intestazione HTTP con cui trovare una corrispondenza.
GRPCBackendRef
Campo Descrizione
BackendRef BackendRef

"BackendRef" è un riferimento a un backend a cui inoltrare le richieste con corrispondenza.

HTTPRoute

Consulta il riferimento dell'API Gateway open source per HTTPRoute.

TCPRoute

Consulta il riferimento dell'API Gateway open source per TCPRoute.