Referência da API Cloud Run
Esta página fornece uma referência para as APIs usadas na configuração do 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 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 um "external-mesh", 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 não 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 "mesh" ou gateways vão continuar funcionando 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 "mesh" ou gateways vão continuar funcionando 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 "mesh" ou gateways vão continuar funcionando 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 "mesh" ou gateways vão continuar 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 vão continuar funcionando para serviços virtuais que têm "mesh" ou gateways vão continuar funcionando conforme o esperado para cargas de trabalho do GKE. |
mTLS automático do Istio e nomenclatura segura
No momento, o Cloud Service Mesh oferece suporte ao Istio MutualTLS automático e à nomenclatura segura para solicitações entre serviços do GKE.
Na versão de 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 usam 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 é compatível com a API de telemetria MeshConfig para ativar e desativar o Cloud Logging e o Cloud Monitoring para cargas de trabalho do GKE. Isso vai funcionar de maneira semelhante para cargas de trabalho que não são do GKE.
Regra do destino
No pré-lançamento, a segmentação DestinationRule
dos serviços virtuais "external-mesh"
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 sejam do GKE. As cargas de trabalho que não são do GKE poderão ver todos os serviços virtuais no escopo de "external-mesh" sem serem filtradas por regras de visibilidade do sidecar.
API Security: política de autorização e política de autenticação de solicitações
Elas não se aplicam a cargas de trabalho não GKE que atuam como clientes enviando tráfego de saída. Eles vão continuar 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 do recurso "GCPBackend". |
TypeMeta | metav1.TypeMeta | Struct incorporada para armazenar informações de metadados, como tipo e versão da API. |
ObjectMeta | metav1.ObjectMeta | Struct incorporada para armazenar informações de metadados, como nome, namespace, rótulos, anotações etc. |
Especificações | GCPBackendSpec | Especificação do recurso GCPBackend, definindo 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 em letras minúsculas, hífens 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. No momento, 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 | Struct incorporada para armazenar informações de metadados da lista, como versão do recurso e token de continuação para paginação. |