GKE API-Referenz für Cloud Service Mesh

Dieses Dokument ist die API-Referenz für Cloud Service Mesh mit der Kubernetes Gateway API.

TDMesh

Feld Beschreibung
apiVersion String
net.gke.io/v1alpha1
kind String
TDMesh
metadata Kubernetes ObjectMeta
spec MeshSpec
status MeshStatus

MeshSpec

Feld Beschreibung
allowedRoutes gateway.networking.k8s.io/v1.AllowedRoutes
gatewayClassName String
gke-td

MeshStatus

Feld Beschreibung
conditions Das Bedingungsfeld beschreibt die aktuellen Bedingungen des Mesh-Netzwerks.
Bekannte Bedingungstypen:
  • Geplant
  • Bereit
Weitere Informationen finden Sie unter Kubernetes meta/v1.23Condition.

GatewayClass

Weitere Informationen finden Sie in der Referenzdokumentation für die GatewayClass.

TDGRPCRoute

TDGRPCRoute gibt das Routingverhalten von gRPC-Anfragen von einem TDMesh- oder Gateway-Listener an ein API-Objekt an, z. B. Service.

Feld Beschreibung
apiVersion String
net.gke.io/v1alpha1
kind String
TDGRPCRoute
metadata metav1.23ObjectMeta
spec GRPCRouteSpec
Definiert den bevorzugten Status von „gRPCRoute“.
Status GRPCRouteStatus
Identisch mit HTTPRouteStatus.

GRPCRouteSpec

Die Spezifikation einer TDGRPCRoute besteht aus den Werten in der folgenden Tabelle:

Feld Beschreibung
CommonRouteSpec CommonRouteSpec
Hostnames []Hostname
Hostnames definiert eine Reihe von Hostnamen, die mit dem gRPC-Host-Header übereinstimmen sollen, um eine zu GRPCRoute zum Verarbeiten der Anfrage auszuwählen.

Hostname ist der voll qualifizierte Domainname eines Netzwerkhosts, wie in RFC 3986 definiert. Beachten Sie die folgenden Abweichungen vom "Host"-Teil des URI, wie in RFC definiert:
  • IP-Adressen sind nicht zulässig.
  • Das Trennzeichen `:` wird nicht berücksichtigt, da Ports nicht zulässig sind.
Eingehende Anfragen werden vor den TDGRPCRoute-Regeln mit den Hostnamen abgeglichen. Wenn kein Hostname angegeben ist, wird der Traffic anhand der GRPCRouteRules weitergeleitet.

Hostname kann "genau" sein, also ein Domainname, ohne den abschließenden

Punkt eines Netzwerkhosts (z. B. butterfly.example.com) oder eine wildcard, wobei es sich um einen Domainnamen mit einem einzelnen Platzhalterlabel als Präfix handelt, z. B. `*.example.com`. Das Platzhalterzeichen `*` muss allein als erstes DNS-Label angezeigt werden und stimmt nur mit einem einzelnen Label überein. Sie können kein Platzhalterlabel allein haben (z. B. Host == "*"). Anfragen werden in der folgenden Reihenfolge mit dem Feld `Host` abgeglichen:
  • Wenn Host genau ist, entspricht die Anfrage dieser Regel, wenn der gRPC-Hostheader gleich Host ist.
  • Wenn Host ein Platzhalter ist, entspricht die Anfrage dieser Regel, wenn der gRPC-Hostheader dem Suffix (erstes Labels wird entfernt) der Platzhalterregel entspricht.
Rules []GRPCRouteRule
Definiert eine Liste von gRPC-Matchern, Filtern und Aktionen.

GRPCRouteRule

Regeln definieren die Semantik für den Abgleich einer gRPC-Anfrage basierend auf Bedingungen sowie die optionale Weiterleitung der Anfrage an ein API-Objekt. Regeln bestehen aus folgenden Elementen:

Feld Beschreibung
Matches GRPCRouteMatch
Definiert Bedingungen, die zum Abgleichen einer gRPC-Anfrage verwendet werden. Jede Übereinstimmung ist unabhängig. Mit anderen Worten: Diese Regel ergibt eine Übereinstimmung, wenn eine einzige Übereinstimmung vorhanden ist.
BackendRefs []GRPCBackendRef

Definiert die Back-Ends, an die übereinstimmende Anfragen gesendet werden sollen. Wenn dies nicht angegeben oder ungültig ist (Verweis auf eine nicht vorhandene Ressource oder einen Service ohne Endpunkte), führt die Regel keine Weiterleitung aus.

GRPCBackendRef ist mit HTTPBackendRef identisch.
GRPCRouteMatch

Regeln definieren die Semantik für den Abgleich einer gRPC-Anfrage basierend auf Bedingungen sowie die optionale Weiterleitung der Anfrage an ein API-Objekt. Regeln sind so definiert:


Feld

Beschreibung
Methode GRPCMethodMatch

Definiert eine gRPC-Methode, mit der abgeglichen werden soll.
Header []GRPCHeaderMatch
Definiert einen gRPC-Anfrageheader-Matcher. Mehrere Abgleichswerte werden mit einer UND-Operation kombiniert. Eine Anfrage muss also mit allen angegebenen Headern übereinstimmen, um die Route auszuwählen.
Hinweis: Die Definition von GRPCHeaderMatch ist mit der von `HTTPHeaderMatch` identisch.
GRPCMethodMatch

Der GRPCMethodMatch besteht aus Folgendem:

Feld Beschreibung
Typ MethodMatchType

Definiert den Typ, der angibt, wie der Abgleich mit dem Namen durchgeführt wird. Wenn nicht angegeben, wird der Standardwert EXACT verwendet. Sie können zwischen EXACT und RegularExpression wählen.
Dienst String

Definiert den Namen des Dienstes, der abgeglichen werden soll. Wenn nicht angegeben, werden alle Dienste abgeglichen.
Methode string

Definiert die Methode für den Abgleich. Wenn nicht angegeben, wird mit allen Methoden abgeglichen.
GRPCHeaderMatch

Die GRPCHeaderMatch besteht aus Folgendem:

Feld Beschreibung
Typ HeaderMatchType

Definiert den Abgleich mit dem Wert des Headers.
Name String

Der Name ist der Name des gRPC-Headers, mit dem abgeglichen werden soll. Beim Abgleich von Namen darf die Groß-/Kleinschreibung nicht berücksichtigt werden. (Siehe https://tools.ietf.org/html/rfc7230#section-3.2.)
Wert String

Der Wert ist der Wert des abzugleichenden HTTP-Headers.
GRPCBackendRef
Feld Beschreibung
BackendRef BackendRef

`BackendRef` ist ein Verweis auf ein Backend, an das Anfragen mit Übereinstimmung weitergeleitet werden.

HTTPRoute

Siehe Open-Source-Gateway API-Referenz für HTTPRoute.

TCPRoute

Siehe Open-Source-Gateway API-Referenz für TCPRoute.