Riferimento API Cloud Run
Questa pagina fornisce un riferimento per le API utilizzate per configurare Cloud Service Mesh per i workload 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 backup del cluster Istio di 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 |
|---|---|---|
| gateways | String [] | Se i gateway includono un "mesh esterno", il servizio virtuale si applica solo ai workload non GKE. Se viene specificato "mesh" insieme a "mesh esterno", il servizio virtuale si applicherà sia ai workload non GKE sia a quelli GKE. |
| exportTo | string | Considerando che i workload non GKE non hanno il concetto di spazio dei nomi, i servizi virtuali "mesh esterno" ignoreranno il campo exportTo. Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
| httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | Verranno ignorati per i servizi virtuali "mesh esterno". Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
| httpRoute.HTTPMatchRequest.SourceNamespace | string | Verranno ignorati per i servizi virtuali "mesh esterno". Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
| httpRoute.HTTPMatchRequest.Gateways | string[] | Verranno ignorati per i servizi virtuali "mesh esterno". Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
| tls | tlsRoute[] | Verranno ignorati per i servizi virtuali "mesh esterno". Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
| tcp | tcpRoute[] | Verranno ignorati per il servizio virtuale mesh esterno. Tuttavia, continueranno a funzionare per i servizi virtuali che hanno "mesh" o i gateway continueranno a funzionare come previsto per i workload GKE. |
Istio Auto MTLS e denominazione sicura
Al momento, Cloud Service Mesh supporta Istio MutualTLS automatico e la denominazione sicura per le richieste tra i servizi GKE.
Per l'anteprima, i workload non GKE che comunicano con i workload/servizi GKE non utilizzeranno Istio Auto MTLS né la denominazione sicura. Il traffico sarà in testo normale. Assicurati che i servizi GKE abbiano un criterio MTLS permissivo (che è il valore predefinito 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
Telemetria MeshConfig
Cloud Service Mesh supporta l'API di telemetria MeshConfig per abilitare e disabilitare Cloud Logging e Cloud Monitoring per i workload GKE. Funzionerà in modo simile anche per i workload non GKE.
Regola di destinazione
Per l'anteprima, DestinationRule che ha come target i servizi virtuali "mesh esterno" sarà supportato, ad eccezione dei seguenti campi: trafficPolicy.tls
API Sidecar
L'API Sidecar non sarà applicabile ai workload non GKE. I workload non GKE potranno visualizzare tutti i servizi virtuali con ambito "mesh esterno" senza essere filtrati da alcuna regola di visibilità Sidecar.
API di sicurezza: criteri di autorizzazione, criteri di autenticazione delle richieste
Questi non si applicheranno ai workload non GKE che fungono da client che inviano traffico in uscita. Continueranno ad applicarsi ai workload GKE che ricevono traffico in entrata.
API GCPBackend
| Nome campo | Tipo | Descrizione campo |
|---|---|---|
| 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 | Struct incorporato 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. |
| Name | string | Nome BackendService. Deve essere compreso tra 1 e 49 caratteri, seguire un pattern specifico e contenere solo lettere minuscole, trattini e numeri. |
| Location | Location | Località di BackendService. Deve essere globale per CSM. (regionale/globale per il bilanciamento del carico gestito). Per impostazione predefinita è la stessa località del cluster. |
| Project | string | ID progetto di BackendService. Per impostazione predefinita è lo stesso progetto del cluster GKE. Deve essere compreso tra 6 e 30 caratteri e seguire un pattern specifico. Al momento, BackendService e il cluster GKE devono trovarsi nello stesso progetto. |
| GCPBackendList | struct | Contiene un elenco di GCPBackend. |
| Items | []*GCPBackend | Array di puntatori GCPBackend che rappresentano l'elenco delle risorse GCPBackend. |
| ListMeta | metav1.ListMeta | Struct incorporato per l'archiviazione di informazioni sui metadati dell'elenco, come la versione della risorsa e il token di continuazione per la paginazione. |