Riferimento 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 è abilitato utilizzando un'annotazione a livello di revisione. Il valore di questa annotazione è il nome del mesh di supporto del cluster Cloud Service Mesh Istio.

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 Cloud Service Mesh Istio

VirtualService API

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

Se "mesh" è specificato insieme a "external-mesh", il servizio virtuale verrà applicato sia ai carichi di lavoro non GKE che a quelli GKE.
exportTo string Considerando che 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 che hanno "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 che hanno "mesh" o i gateway 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 che hanno "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
httpRoute.HTTPMatchRequest.Gateways string[] Verrà ignorato per i servizi virtuali "external-mesh".

Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "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 che hanno "mesh" o i gateway continueranno a funzionare come previsto per i carichi di lavoro GKE.
tcp tcpRoute[] Verrà ignorato per il servizio virtuale external-mesh.

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

Istio Auto MTLS e denominazione sicura

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

Per l'anteprima, i carichi di lavoro non GKE che comunicano con i servizi/carichi di lavoro GKE non utilizzeranno Istio Auto MTLS né la denominazione sicura. Il traffico sarà in testo normale. Assicurati che i servizi GKE abbiano una policy MTLS permissiva (che è l'impostazione predefinita dell'API Istio) che accetta il traffico MTLS dai workload GKE e il testo normale dai workload 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

MeshConfig Telemetry

Cloud Service Mesh supporta l'API di telemetria MeshConfig per abilitare e disabilitare Cloud Logging e Cloud Monitoring per i carichi di lavoro GKE. Funziona in modo simile anche per i carichi di lavoro non GKE.

Regola di destinazione

Per l'anteprima, il targeting DestinationRule 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 visualizzare tutti i servizi virtuali con ambito "external-mesh" senza essere filtrati da alcuna regola di visibilità di Sidecar.

API Security - Authorization Policy, Request Authentication Policy

Queste non si applicheranno ai workload non GKE che fungono da client che inviano traffico in uscita. Continueranno ad applicare i workload GKE che ricevono traffico in entrata.

API GCPBackend

Nome campo Tipo Field Description
GCPBackend struct Schema per la risorsa GCPBackend.
TypeMeta metav1.TypeMeta Struct incorporato 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 della risorsa GCPBackend, che ne definisce lo stato desiderato.
GCPBackendSpec struct Definisce lo stato desiderato di GRPCRoute.
CloudRun *CloudRunBackend Definisce un backend in esecuzione in Cloud Run (facoltativo).
CloudRunBackend struct Identifica un servizio in esecuzione su Cloud Run.
Servizio string Nome servizio Cloud Run. Deve essere compreso tra 1 e 49 caratteri, seguire un pattern specifico e contenere solo lettere minuscole, trattini e numeri.
Regioni []Region Regioni del servizio Cloud Run. Deve essere fornita esattamente una regione.
Progetto string ID progetto del servizio Cloud Run. Per impostazione predefinita, è lo stesso progetto del cluster GKE. Deve essere compreso tra 6 e 30 caratteri e seguire un pattern specifico. Al momento, il servizio Cloud Run 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 di informazioni sui metadati degli elenchi, come la versione della risorsa e il token di continuazione per la paginazione.