Referência da API GKE do Cloud Service Mesh

Este documento é a referência da API para o Cloud Service Mesh com a API Kubernetes Gateway.

TDMesh

Campo Descrição
apiVersion string
net.gke.io/v1alpha1
kind string
TDMesh
metadata Kubernetes ObjectMeta
spec MeshSpec (link em inglês)
status MeshStatus

MeshSpec

Field Descrição
allowedRoutes gateway.networking.k8s.io/v1.AllowedRoutes
gatewayClassName string
gke-td

MeshStatus

Field Descrição
conditions O campo Condições descreve as condições atuais da malha.
Tipos de condição conhecidos:
  • Programada
  • Pronto
Para mais informações, leia Kubernetes meta/v1.23Condition.

GatewayClass

Consulte a documentação de referência para o GatewayClass.

TDGRPCRoute

TDGRPCRoute especifica o comportamento de roteamento de solicitações gRPC de um listener TDMesh ou Gateway para um objeto de API; por exemplo, Service.

Field Descrição
apiVersion string
net.gke.io/v1alpha1
kind string
TDGRPCRoute
metadata metav1.23ObjectMeta
spec GRPCRouteSpec
Define o estado preferido de "GRPCRoute".
Status GRPCRouteStatus
É o mesmo que HTTPRouteStatus.

GRPCRouteSpec

A especificação de um TDGRPCRoute consiste nos valores da tabela a seguir:

Field Descrição
CommonRouteSpec CommonRouteSpec (em inglês)
Hostnames []Nome do host
Os nomes do host definem um conjunto de nomes do host que precisam corresponder ao cabeçalho Host do gRPC para selecionar uma GRPCRoute para processar o pedido.

Hostname é o nome de domínio totalmente qualificado de um host de rede, conforme definido pela RFC 3986. Observe os seguintes desvios da parte "host" do URI, conforme definido no RFC:
  • Endereços IP não são permitidos.
  • O delimitador ":" não é respeitado porque as portas não são permitidas.
As solicitações recebidas correspondem aos nomes de host antes das regras TDGRPCRoute. Se nenhum nome do host for especificado, o tráfego será roteado com base no GRPCRouteRules.

Hostname pode ser "exata", que é um nome de domínio sem o ponto de encerramento

de um host de rede (por exemplo, butterfly.example.com) ou wildcard, que é um nome de domínio prefixado com um único rótulo de caractere curinga; por exemplo, "*.example.com". O caractere curinga "*" precisa aparecer sozinho como o primeiro rótulo de DNS e corresponder a apenas um rótulo. Não é possível ter um rótulo curinga sozinho (por exemplo, Host == "*"). As solicitações correspondem ao campo "Host" na seguinte ordem:
  • Se Host for preciso, a solicitação corresponderá a essa regra se o cabeçalho do host do gRPC for igual a Host.
  • Se Host for um caractere curinga, a solicitação corresponderá a essa regra se o cabeçalho do host do gRPC for igual ao sufixo (removendo o primeiro rótulo) da regra de caractere curinga.
Rules []GRPCRouteRule
Define uma lista de correspondências, filtros e ações do gRPC.

GRPCRouteRule

As regras definem a semântica para corresponder uma solicitação gRPC com base nas condições e, opcionalmente, encaminhar a solicitação para um objeto de API. As regras são as seguintes:

Field Descrição
Matches GRPCRouteMatch
Define as condições usadas para corresponder uma solicitação gRPC. Cada correspondência é independente. Em outras palavras, essa regra será correspondida se alguma correspondência individual for atendida.
BackendRefs []GRPCBackendRef

Define os back-ends para onde as solicitações correspondentes devem ser enviadas. Se não for especificada ou for inválida (refere-se a um recurso inexistente ou a um Serviço sem endpoints), a regra não realizará o encaminhamento.

GRPCBackendRef é igual a HTTPBackendRef.
GRPCRouteMatch

As regras definem a semântica para corresponder uma solicitação gRPC com base nas condições e, opcionalmente, encaminhar a solicitação para um objeto de API. As regras são definidas da seguinte maneira:


Campo

Descrição
Método GRPCMethodMatch

Define um método gRPC para correspondência.
Cabeçalhos []GRPCHeaderMatch
Define um matcher de cabeçalho de solicitação gRPC. Vários valores de correspondência são combinados com uma operação AND, o que significa que uma solicitação precisa corresponder a todos os cabeçalhos especificados para selecionar a rota.
Observação: a definição de GRPCHeaderMatch é igual a "HTTPHeaderMatch".
GRPCMethodMatch

O GRPCMethodMatch consiste no seguinte:

Field Descrição
Tipo MethodMatchType

Define o tipo que especifica como fazer a correspondência com o nome. Se não for especificado, um valor padrão de EXACT será usado. É possível escolher EXACT ou RegularExpression.
Serviço string

Define o nome do serviço para correspondência. Se não for especificado, corresponderá a todos os serviços.
Método string

Define o método de correspondência. Se não for especificada, ela corresponderá a todos os métodos.
GRPCHeaderMatch

O GRPCHeaderMatch consiste no seguinte:

Field Descrição
Tipo HeaderMatchType

Define como corresponder ao valor do cabeçalho.
Nome String

Nome é o nome do cabeçalho gRPC a ser correspondido. A correspondência de nome não diferencia maiúsculas de minúsculas. (Consulte https://tools.ietf.org/html/rfc7230#section-3.2).
Valor String

Valor é o valor corresponde ao valor do cabeçalho HTTP a ser correspondido.
GRPCBackendRef
Field Descrição
BackendRef BackendRef

"BackRef" é uma referência a um back-end para encaminhar solicitações correspondentes.

HTTPRoute

Consulte a referência de API de gateway de código aberto para HTTPRoute.

TCPRoute

Consulte a referência de API de gateway de código aberto para TCPRoute.