Referência da API Cloud Run

Esta página fornece uma referência para as APIs usadas para configurar a malha de serviços na nuvem para cargas de trabalho do Cloud Run.

API Cloud Run

API v1

O Cloud Service Mesh está ativado através de uma anotação ao nível da revisão. O valor desta anotação é o nome da malha de apoio do cluster do Istio do Cloud Service Mesh.

Anotação Valor
run.googleapis.com/mesh projects/PROJECT/locations/global/meshes/MESH

API v2

O Cloud Service Mesh é ativado através do 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 "malha externa", o serviço virtual aplica-se apenas a cargas de trabalho não pertencentes ao GKE.

Se "mesh" for especificado juntamente com "external-mesh", o serviço virtual aplica-se a cargas de trabalho do GKE e não do GKE.
exportTo de string Tendo em conta que as cargas de trabalho não GKE não têm o conceito de um espaço de nomes, os serviços virtuais "external-mesh" ignoram o campo exportTo.

No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.SourceLabels map<string, string=""></string,> Será ignorado para serviços virtuais "external-mesh".
No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.SourceNamespace de string Será ignorado para serviços virtuais "external-mesh".

No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.
httpRoute.HTTPMatchRequest.Gateways string[] Será ignorado para serviços virtuais "external-mesh".

No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.
tls tlsRoute[] Será ignorado para serviços virtuais "external-mesh".

No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.
tcp tcpRoute[] Será ignorado para o serviço virtual de malha externa.

No entanto, continuam a funcionar para serviços virtuais que tenham "mesh" ou gateways, e continuam a funcionar conforme esperado para cargas de trabalho do GKE.

Istio Auto MTLS e nomenclatura segura

Atualmente, o Cloud Service Mesh suporta o Istio MutualTLS automático e a denominação segura para pedidos entre serviços do GKE.

Para a pré-visualização, as cargas de trabalho não GKE que comunicam com cargas de trabalho/serviços GKE não usam o MTLS automático do Istio nem a nomenclatura segura. O tráfego vai estar em texto simples. Certifique-se de que os serviços do GKE têm uma política de MTLS permissiva (que é a predefinição da API Istio) que aceita tráfego MTLS de cargas de trabalho do GKE e texto simples de cargas de trabalho não pertencentes ao GKE.

Use o seguinte comando 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 MeshConfig

O Cloud Service Mesh suporta a API de telemetria MeshConfig para ativar e desativar o Cloud Logging e o Cloud Monitoring para cargas de trabalho do GKE. Isto também funciona de forma semelhante para cargas de trabalho não pertencentes ao GKE.

Regra de destino

Para a pré-visualização, a segmentação de DestinationRule dos serviços virtuais "external-mesh" será suportada, exceto nos seguintes campos: trafficPolicy.tls

Sidecar API

A API Sidecar não é aplicável a cargas de trabalho não GKE. As cargas de trabalho não GKE vão poder ver todos os serviços virtuais com âmbito "external-mesh" sem serem filtrados por regras de visibilidade do Sidecar.

API Security – Política de autorização, política de autenticação de pedidos

Estas não se aplicam a cargas de trabalho não GKE que atuam como clientes que enviam tráfego de saída. Continuam a aplicar-se a cargas de trabalho do GKE que recebem tráfego de entrada.

GCPBackend API

Nome do campo Tipo Descrição do campo
GCPBackend struct Esquema para o recurso GCPBackend.
TypeMeta metav1.TypeMeta Estrutura incorporada para armazenar informações de metadados, como o tipo e a versão da API.
ObjectMeta metav1.ObjectMeta Estrutura incorporada para armazenar informações de metadados, como nome, espaço de nomes, etiquetas, anotações, etc.
Especificação GCPBackendSpec Especificação do recurso GCPBackend, que define o respetivo estado pretendido.
GCPBackendSpec struct Define o estado pretendido do 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 de string Nome do serviço do Cloud Run. Tem de ter entre 1 e 49 carateres, seguir um padrão específico e consistir apenas em letras minúsculas, hífenes e números.
Regiões []Região Regiões do serviço do Cloud Run. Tem de indicar exatamente uma região.
Projeto de string ID do projeto do serviço do Cloud Run. A predefinição é o mesmo projeto que o cluster do GKE. Tem de ter entre 6 e 30 carateres e seguir um padrão específico. Atualmente, o serviço do Cloud Run e o cluster do GKE têm de estar no mesmo projeto.
GCPBackendList struct Contém uma lista de GCPBackends.
Itens ]*GCPBackend Matriz de ponteiros GCPBackend que representa a lista de recursos GCPBackend.
ListMeta metav1.ListMeta Estrutura incorporada para armazenar informações de metadados de listas, como a versão do recurso e o token de continuação para paginação.