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 no nível da revisão. O valor dessa anotação é o nome da malha de suporte do cluster do Cloud Service Mesh Istio.
| 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 Cloud Service Mesh Istio
API VirtualService
| Nome do campo | Tipo | Descrição do campo |
|---|---|---|
| gateways | String [] | Se os gateways incluírem uma "malha externa", 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 que não são do GKE não têm o conceito de namespace, os serviços virtuais de "malha externa" ignoram o campo exportTo. No entanto, eles continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão funcionando conforme o esperado para cargas de trabalho do GKE. |
| httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | Será ignorado para serviços virtuais de "malha externa". No entanto, eles continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão funcionando conforme o esperado para cargas de trabalho do GKE. |
| httpRoute.HTTPMatchRequest.SourceNamespace | string | Será ignorado para serviços virtuais de "malha externa". No entanto, eles continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão funcionando conforme o esperado para cargas de trabalho do GKE. |
| httpRoute.HTTPMatchRequest.Gateways | string[] | Será ignorado para serviços virtuais de "malha externa". No entanto, eles continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão funcionando conforme o esperado para cargas de trabalho do GKE. |
| tls | tlsRoute[] | Será ignorado para serviços virtuais de "malha externa". No entanto, eles continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão 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 continuarão funcionando para serviços virtuais que têm "mesh" ou gateways continuarão funcionando conforme o esperado para cargas de trabalho do GKE. |
MTLS automático do Istio e nomenclatura segura
Atualmente, o Cloud Service Mesh oferece suporte ao MTLS automático do Istio e à nomenclatura segura para solicitações entre serviços do GKE.
Para a versão 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 usarão 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 oferece suporte à API de telemetria do MeshConfig para ativar e desativar o Cloud Logging e o Cloud Monitoring para cargas de trabalho do GKE. Isso também funciona de maneira semelhante para cargas de trabalho que não são do GKE.
Regra do destino
Para a versão prévia, a DestinationRule que segmenta os serviços virtuais de "malha externa" 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 são do GKE. As cargas de trabalho que não são do GKE poderão ver todos os serviços virtuais com escopo para "malha externa" sem serem filtrados por regras de visibilidade do Sidecar.
API de segurança: política de autorização, política de autenticação de solicitação
Elas não serão aplicadas a cargas de trabalho que não são do GKE e que atuam como clientes que enviam tráfego de saída. Elas continuarão 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 para o 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 para o recurso GCPBackend, definindo o estado desejado. |
| GCPBackendSpec | struct | Define o estado desejado do GRPCRoute. |
| CloudRun | *CloudRunBackend | Define um back-end em execução no CloudRun (opcional). |
| CloudRunBackend | struct | Identifica um serviço em execução no Cloud Run. |
| Serviço | string | Nome do serviço do CloudRun. Precisa ter entre 1 e 49 caracteres, seguir um padrão específico e consistir apenas em letras minúsculas, hifens e números. |
| Regiões | []Região | Regiões do serviço do CloudRun. Exatamente uma região precisa ser fornecida. |
| Projeto | string | ID do projeto do serviço do CloudRun. 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 GCPBackend que representam a lista de recursos GCPBackend. |
| ListMeta | metav1.ListMeta | Estrutura incorporada para armazenar informações de metadados de lista, como versão do recurso e token de continuação para paginação. |