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. |