Referência da API Cloud Run

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

API Cloud Run

API v1

O Cloud Service Mesh é ativado usando uma anotação de nível de 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 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, 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 "rede" ou gateways, 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 "rede" ou gateways, 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 "rede" 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, conforme o 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á aceita, 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 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.
BackendService *BackendServiceBackend Define um serviço de back-end. Opcional:
BackendServiceBackend struct Identifica um serviço de back-end.
Nome string Nome do BackendService. Precisa ter entre 1 e 49 caracteres, seguir um padrão específico e consistir apenas de letras minúsculas, hifens e números.
Local Local Local do BackendService. Precisa ser global para o CSM. (regional/global para balanceadores de carga gerenciados) O padrão é o mesmo local do cluster.
Projeto string ID do projeto do BackendService. 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 BackendService 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.