Riferimento all'API Cloud Run

Questa pagina fornisce un riferimento per le API utilizzate per configurare Cloud Service Mesh per i carichi di lavoro Cloud Run.

API Cloud Run

API v1

Cloud Service Mesh viene attivato utilizzando un'annotazione a livello di revisione. Il valore di questa annotazione è il nome del mesh di supporto del cluster Istio Cloud Service Mesh.

Annotazione Valore
run.googleapis.com/mesh projects/PROJECT/locations/global/meshes/MESH

API v2

Cloud Service Mesh è abilitato utilizzando il campo serviceMesh nella risorsa Service

API Istio di Cloud Service Mesh

API VirtualService

Nome campo Tipo Descrizione campo
gateway Stringa [] Se i gateway includono un "external-mesh", il servizio virtuale si applica solo ai carichi di lavoro non GKE.

Se viene specificato "mesh" insieme a "external-mesh", il servizio virtuale verrà applicato sia ai carichi di lavoro non GKE che a quelli GKE.
exportTo string Poiché i workload non GKE non hanno il concetto di spazio dei nomi, i servizi virtuali "external-mesh" ignorano il campo exportTo.

Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
httpRoute.HTTPMatchRequest.SourceLabels map<string, string=""></string,> Verrà ignorato per i servizi virtuali "external-mesh".
Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o gateway e continueranno a funzionare come previsto per i carichi di lavoro GKE.
httpRoute.HTTPMatchRequest.SourceNamespace string Verrà ignorato per i servizi virtuali "external-mesh".

Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
httpRoute.HTTPMatchRequest.Gateways stringa[] Verrà ignorato per i servizi virtuali "external-mesh".

Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
tls tlsRoute[] Verrà ignorato per i servizi virtuali "external-mesh".

Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
tcp tcpRoute[] Verrà ignorato per il servizio virtuale mesh esterno.

Tuttavia, continueranno a funzionare per i servizi virtuali con "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.

mTLS automatico e denominazione sicura di Istio

Attualmente, Cloud Service Mesh supporta MutualTLS Istio automatico e Secure Naming per le richieste tra i servizi GKE.

Per la versione di anteprima, i carichi di lavoro non GKE che comunicano con i carichi di lavoro/servizi GKE non utilizzeranno mTLS automatico di Istio né Secure Naming. Il traffico sarà in testo normale. Assicurati che i servizi GKE abbiano un criterio MTLS permissivo (che è quello predefinito dell'API Istio) che accetti il traffico MTLS dai carichi di lavoro GKE e il testo non elaborato dai carichi di lavoro non GKE.

Utilizza il seguente comando per verificare se PeerAuthentication è in modalità permissiva:

# 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 di MeshConfig

Cloud Service Mesh supporta l'API di telemetria MeshConfig per abilitare e disattivare Cloud Logging e Cloud Monitoring per i carichi di lavoro GKE. Questo approccio funzionerà in modo simile anche per i carichi di lavoro non GKE.

Regola di destinazione

Per la versione di anteprima, DestinationRule il targeting dei servizi virtuali "external-mesh" sarà supportato, ad eccezione dei seguenti campi: trafficPolicy.tls

API Sidecar

L'API Sidecar non sarà applicabile ai workload non GKE. I carichi di lavoro non GKE potranno vedere tutti i servizi virtuali in ambito "external-mesh" senza essere filtrati da alcuna regola di visibilità sidecar.

API Security - Authorization Policy, Request Authentication Policy

Questi limiti non si applicano ai workload non GKE che agiscono come client che inviano traffico in uscita. Continueranno ad applicare i workload GKE che ricevono traffico in entrata.

API GCPBackend

Nome campo Tipo Descrizione del campo
GCPBackend struct Schema per la risorsa GCPBackend.
TypeMeta metav1.TypeMeta Struttura incorporata per l'archiviazione di informazioni sui metadati, come tipo e versione dell'API.
ObjectMeta metav1.ObjectMeta Struttura incorporata per l'archiviazione di informazioni sui metadati come nome, spazio dei nomi, etichette, annotazioni e così via.
Spec GCPBackendSpec Specifica per la risorsa GCPBackend, che ne definisce lo stato desiderato.
GCPBackendSpec struct Definisce lo stato desiderato di GRPCRoute.
BackendService *BackendServiceBackend Definisce un servizio di backend. (Facoltativo).
BackendServiceBackend struct Identifica un servizio di backend.
Nome string Nome del servizio BackendService. Deve essere compreso tra 1 e 49 caratteri, seguire uno schema specifico e essere composto solo da lettere minuscole, trattini e numeri.
Località Località Posizione del servizio di backend. Deve essere Global per CSM. (regionale/globale per il bilanciamento del carico gestito). Il valore predefinito è la stessa località del cluster.
Progetto string ID progetto del servizio BackendService. Per impostazione predefinita è lo stesso progetto del cluster GKE. Deve avere una lunghezza compresa tra 6 e 30 caratteri e seguire uno schema specifico. Attualmente, BackendService e il cluster GKE devono trovarsi nello stesso progetto.
GCPBackendList struct Contiene un elenco di GCPBackend.
Elementi []*GCPBackend Array di puntatori GCPBackend che rappresentano l'elenco delle risorse GCPBackend.
ListMeta metav1.ListMeta Struttura incorporata per l'archiviazione delle informazioni sui metadati dell'elenco, come la versione della risorsa e il token di continuazione per la paginazione.