Referência da API Cloud Run

Esta página fornece uma referência para as APIs usadas na configuração do Cloud Service Mesh para cargas de trabalho do Cloud Run.

API Cloud Run

API v1

O Cloud Service Mesh é ativado usando uma anotação no nível da revisão. O valor dessa anotação é o nome da malha de suporte do cluster do Istio do Cloud Service Mesh.

Nota Valor
run.googleapis.com/mesh projects/PROJECT/locations/global/meshes/MESH

API v2

O Cloud Service Mesh é ativado usando o campo serviceMesh no recurso Service.

API Istio do Cloud Service Mesh

API VirtualService

Nome do campo Tipo Descrição do campo
gateways String [] Se os gateways incluírem um "external-mesh", o serviço virtual será aplicado apenas a cargas de trabalho que não são do GKE.

Se "mesh" for especificado com "external-mesh", o serviço virtual será aplicado a cargas de trabalho do GKE e não do GKE.
exportTo string Considerando que as cargas de trabalho não GKE não têm o conceito de namespace, os serviços virtuais "external-mesh" ignoram o campo "exportTo".

No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.SourceLabels map<string, string=""></string,> Será ignorado para serviços virtuais "external-mesh".
No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways, conforme o esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.SourceNamespace string Será ignorado para serviços virtuais "external-mesh".

No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.Gateways string[] Será ignorado para serviços virtuais "external-mesh".

No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE.
tls tlsRoute[] Será ignorado para serviços virtuais "external-mesh".

No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE.
TCP tcpRoute[] Será ignorado para o serviço virtual de malha externa.

No entanto, eles vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE.

mTLS automático do Istio e nomenclatura segura

No momento, o Cloud Service Mesh oferece suporte ao Istio MutualTLS automático e à nomenclatura segura para solicitações entre serviços do GKE.

Na versão de prévia, as cargas de trabalho que não são do GKE e que se comunicam com cargas de trabalho/serviços do GKE não usam o mTLS automático do Istio nem a nomenclatura segura. O tráfego será em texto simples. Verifique se os serviços do GKE têm uma política de mTLS permissiva (que é o padrão da API Istio) que aceita tráfego mTLS de cargas de trabalho do GKE e texto simples de cargas de trabalho que não são do GKE.

Use o comando a seguir para verificar se o PeerAuthentication está no modo permissivo:

# list PeerAuthentication resources in a namespace
# If no PeerAuthentication resource exists in the namespace, 
# then it's PERMISSIVE mode (Istio API default)
kubectl get PeerAuthentication -n $NAMESPACE

# for each of the above run the following command
kubectl get PeerAuthentication $PEER-AUTHN -n $NAMESPACE

# Expected Output is as follows:
# MTLS Mode must be PERMISSIVE.
# If the output says STRICT, then please update the policy to PERMISSIVE.
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
  name: $PEER-AUTHN
  namespace: $NAMESPACE
spec:
  mtls:
    mode: PERMISSIVE

Telemetria do MeshConfig

O Cloud Service Mesh é compatível com a API de telemetria MeshConfig para ativar e desativar o Cloud Logging e o Cloud Monitoring para cargas de trabalho do GKE. Isso vai funcionar de maneira semelhante para cargas de trabalho que não são do GKE.

Regra do destino

No pré-lançamento, a segmentação DestinationRule dos serviços virtuais "external-mesh" será compatível, exceto os seguintes campos: trafficPolicy.tls

API Sidecar

A API Sidecar não será aplicável a cargas de trabalho que não sejam do GKE. As cargas de trabalho que não são do GKE poderão ver todos os serviços virtuais no escopo de "external-mesh" sem serem filtradas por regras de visibilidade do sidecar.

API Security: política de autorização e política de autenticação de solicitações

Elas não se aplicam a cargas de trabalho não GKE que atuam como clientes enviando tráfego de saída. Eles vão continuar aplicando cargas de trabalho do GKE que recebem tráfego de entrada.

API GCPBackend

Nome do campo Tipo Descrição do campo
GCPBackend struct Esquema do recurso "GCPBackend".
TypeMeta metav1.TypeMeta Struct incorporada para armazenar informações de metadados, como tipo e versão da API.
ObjectMeta metav1.ObjectMeta Struct incorporada para armazenar informações de metadados, como nome, namespace, rótulos, anotações etc.
Especificações GCPBackendSpec Especificação do recurso GCPBackend, definindo o estado desejado.
GCPBackendSpec struct Define o estado desejado da GRPCRoute.
CloudRun *CloudRunBackend Define um back-end em execução no Cloud Run (opcional).
CloudRunBackend struct Identifica um serviço em execução no Cloud Run.
Serviço string Nome do serviço do Cloud Run. Precisa ter entre 1 e 49 caracteres, seguir um padrão específico e consistir apenas em letras minúsculas, hífens e números.
Regiões []Região Regiões do serviço Cloud Run. É necessário informar exatamente uma região.
Projeto string ID do projeto do serviço do Cloud Run. O padrão é o mesmo projeto do cluster do GKE. Precisa ter entre 6 e 30 caracteres e seguir um padrão específico. No momento, o serviço do Cloud Run e o cluster do GKE precisam estar no mesmo projeto.
GCPBackendList struct Contém uma lista de GCPBackends.
Itens []*GCPBackend Matriz de ponteiros GCPBackend que representam a lista de recursos GCPBackend.
ListMeta metav1.ListMeta Struct incorporada para armazenar informações de metadados da lista, como versão do recurso e token de continuação para paginação.