Riferimento all'API Cloud Run
Questa pagina fornisce un riferimento per le API utilizzate per configurare Service Mesh per i carichi di lavoro Cloud Run.
API Cloud Run v1 (google.cloud.run.v1)
Il mesh di servizi è abilitato utilizzando un'annotazione di sistema a livello di revisione. Il valore di questa annotazione è il nome del mesh di supporto del cluster Istio di Cloud Service Mesh.
Annotazione | Valore |
---|---|
run.googleapis.com/mesh | projects/PROJECT>/locations/global/meshes/MESH> |
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. |
CloudRun | *CloudRunBackend | (Facoltativo) Definisce un backend in esecuzione in Cloud Run. |
CloudRunBackend | struct | Identifica un servizio in esecuzione su Cloud Run. |
Servizio | string | Nome del servizio CloudRun. Deve essere compreso tra 1 e 49 caratteri, seguire uno schema specifico e essere composto solo da lettere minuscole, trattini e numeri. |
Regioni | []Region | Regioni del servizio CloudRun. È necessario specificare esattamente una regione. |
Progetto | string | ID progetto del servizio Cloud Run. 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, 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 delle informazioni sui metadati dell'elenco, come la versione della risorsa e il token di continuazione per la paginazione. |