Cloud Run API-Referenz
Auf dieser Seite finden Sie eine Referenz für die APIs, die zum Konfigurieren von Cloud Service Mesh für Cloud Run-Arbeitslasten verwendet werden.
Cloud Run API
v1 API
Cloud Service Mesh wird mit einer Annotation auf Revisionsebene aktiviert. Der Wert dieser Annotation ist der Name des unterstützenden Mesh des Cloud Service Mesh Istio-Clusters.
| Anmerkung | Wert |
|---|---|
| run.googleapis.com/mesh | projects/PROJECT/locations/global/meshes/MESH |
v2 API
Cloud Service Mesh wird mit dem serviceMesh Feld in der
Service Ressource aktiviert.
Cloud Service Mesh Istio API
VirtualService API
| Feldname | Typ | Feldbeschreibung |
|---|---|---|
| Gateways | String [] | Wenn die Gateways „external-mesh“ enthalten, gilt der virtuelle Dienst nur für Nicht-GKE-Arbeitslasten. Wenn „mesh“ zusammen mit „external-mesh“ angegeben wird, gilt der virtuelle Dienst sowohl für Nicht-GKE- als auch für GKE-Arbeitslasten. |
| exportTo | String | Da es für Nicht-GKE-Arbeitslasten kein Konzept für einen Namespace gibt, wird das Feld „exportTo“ für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
| httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | Wird für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
| httpRoute.HTTPMatchRequest.SourceNamespace | String | Wird für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
| httpRoute.HTTPMatchRequest.Gateways | String[] | Wird für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
| tls | tlsRoute[] | Wird für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
| tcp | tcpRoute[] | Wird für virtuelle Dienste vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „mesh“ oder Gateways funktionieren wie erwartet für GKE-Arbeitslasten. |
Automatische gegenseitige TLS-Authentifizierung und sichere Benennung in Istio
Derzeit unterstützt Cloud Service Mesh die automatische gegenseitige TLS-Authentifizierung und sichere Benennung in Istio für Anfragen zwischen GKE-Diensten.
In der Vorschau werden für Nicht-GKE-Arbeitslasten, die mit GKE-Arbeitslasten/‑Diensten kommunizieren, weder die automatische gegenseitige TLS-Authentifizierung noch die sichere Benennung in Istio verwendet. Der Traffic wird im Nur-Text-Format übertragen. Achten Sie darauf, dass für GKE-Dienste eine permissive MTLS-Richtlinie gilt (die Istio API-Standardeinstellung), die MTLS-Traffic von GKE-Arbeitslasten und Nur-Text-Traffic von Nicht-GKE-Arbeitslasten akzeptiert.
Verwenden Sie den folgenden Befehl, um zu prüfen, ob die PeerAuthentication im permissiven Modus ausgeführt wird:
# 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-Telemetrie
Cloud Service Mesh unterstützt die MeshConfig-Telemetrie-API, um Cloud Logging und Cloud Monitoring für GKE-Arbeitslasten zu aktivieren und zu deaktivieren. Dies funktioniert auch für Nicht-GKE-Arbeitslasten.
Zielregel
In der Vorschau wird DestinationRule unterstützt, die auf virtuelle Dienste vom Typ „external-mesh“ ausgerichtet ist, mit Ausnahme der folgenden Felder: trafficPolicy.tls
Sidecar API
Die Sidecar API ist nicht auf Nicht-GKE-Arbeitslasten anwendbar. Nicht-GKE-Arbeitslasten können alle virtuellen Dienste sehen, die auf „external-mesh“ beschränkt sind, ohne dass sie durch Regeln zur Sidecar-Sichtbarkeit gefiltert werden.
Security API – Autorisierungsrichtlinie, Richtlinie zur Anfragenauthentifizierung
Diese gelten nicht für Nicht-GKE-Arbeitslasten, die als Clients fungieren und ausgehenden Traffic senden. Sie gelten weiterhin für GKE-Arbeitslasten, die eingehenden Traffic empfangen.
GCPBackend API
| Feldname | Typ | Feldbeschreibung |
|---|---|---|
| GCPBackend | Struktur (in Code: struct) | Schema für die GCPBackend-Ressource. |
| TypeMeta | metav1.TypeMeta | Eingebettete Struktur zum Speichern von Metadaten wie Art und API-Version. |
| ObjectMeta | metav1.ObjectMeta | Eingebettete Struktur zum Speichern von Metadaten wie Name, Namespace, Labels, Anmerkungen usw. |
| Spezifikation | GCPBackendSpec | Spezifikation für die GCPBackend-Ressource, die den gewünschten Status definiert. |
| GCPBackendSpec | Struktur (in Code: struct) | Definiert den gewünschten Status von GRPCRoute. |
| BackendService | *BackendServiceBackend | Definiert einen Backend-Dienst. Optional: |
| BackendServiceBackend | Struktur (in Code: struct) | Identifiziert einen Backend-Dienst. |
| Name | String | Name des BackendService. Muss zwischen 1 und 49 Zeichen lang sein, einem bestimmten Muster folgen und nur Kleinbuchstaben, Bindestriche und Zahlen enthalten. |
| Standort | Standort | Standort des BackendService. Muss für CSM global sein. Regional/global für verwalteten Load Balancer. Standardmäßig derselbe Standort wie der Cluster. |
| Projekt | String | Projekt-ID des BackendService. Standardmäßig dasselbe Projekt wie der GKE-Cluster. Muss zwischen 6 und 30 Zeichen lang sein und einem bestimmten Muster folgen. Derzeit müssen sich BackendService und der GKE-Cluster im selben Projekt befinden. |
| GCPBackendList | Struktur (in Code: struct) | Enthält eine Liste von GCPBackends. |
| Elemente | []*GCPBackend | Array von GCPBackend-Zeigern, die die Liste der GCPBackend-Ressourcen darstellen. |
| ListMeta | metav1.ListMeta | Eingebettete Struktur zum Speichern von Metadaten für Listen wie Ressourcenversion und Fortsetzungstoken für die Paginierung. |