Referência da API Cloud Run

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

API Cloud Run V1 (google.cloud.run.v1)

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

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

API Istio do Cloud Service Mesh

API VirtualService

Nome do campo Tipo Descrição do campo
gateways String [] Se os gateways incluírem uma "rede externa", o serviço virtual será aplicado apenas a cargas de trabalho que não sejam do GKE.

Se "mesh" for especificado com "external-mesh", o serviço virtual será aplicado a cargas de trabalho que não são do GKE e do GKE.
exportTo string Considerando que as cargas de trabalho que não são do 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 "rede" ou gateways, como 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 tenham "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 "rede" ou gateways, como 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 "rede" ou gateways, como 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, 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 "rede" ou gateways, como esperado para cargas de trabalho do GKE.

mTLS automático e nomenclatura segura do Istio

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

Na visualização, as cargas de trabalho que não são do GKE que se comunicam com cargas de trabalho/serviços do GKE não vão usar o MTLS automático do Istio nem o Secure Naming. O tráfego será em texto simples. Verifique se os serviços do GKE têm uma política mTLS permissiva (que é o padrão da API Istio) que aceita o 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 a 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 de MeshConfig

O Cloud Service Mesh oferece suporte à API de telemetria MeshConfig para ativar e desativar o Cloud Logging e o Cloud Monitoring para cargas de trabalho do GKE. Isso também vai funcionar de forma semelhante para cargas de trabalho que não são do GKE.

Regra do destino

Na pré-visualização, a segmentação DestinationRule dos serviços virtuais "external-mesh" será compatível com todos os campos, exceto: 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 vão poder acessar todos os serviços virtuais com escopo "external-mesh" sem serem filtrados por nenhuma regra de visibilidade do Sidecar.

API de segurança: política de autorização, política de autenticação de solicitação

Elas não se aplicam a cargas de trabalho que não são do GKE e que atuam como clientes enviando tráfego de saída. Elas vão continuar a aplicar 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 Estrutura incorporada para armazenar informações de metadados, como tipo e versão da API.
ObjectMeta metav1.ObjectMeta Estrutura incorporada para armazenar informações de metadados, como nome, namespace, rótulos, anotações etc.
Especificações GCPBackendSpec Especificação do recurso GCPBackend, que define 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 de letras minúsculas, hifens 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. Atualmente, 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 do GCPBackend que representam a lista de recursos do GCPBackend.
ListMeta metav1.ListMeta Estrutura incorporada para armazenar informações de metadados de lista, como a versão do recurso e o token de continuação para paginação.