Cloud Run API-Referenz
Auf dieser Seite finden Sie eine Referenz für die APIs, mit denen Cloud Service Mesh für Cloud Run-Arbeitslasten konfiguriert wird.
Cloud Run API
v1 API
Cloud Service Mesh wird mit einer Anmerkung auf Versionsebene aktiviert. Der Wert dieser Anmerkung ist der Name des Back-end-Meshes des Cloud Service Mesh Istio-Clusters.
Anmerkung | Wert |
---|---|
run.googleapis.com/mesh | projects/PROJECT/locations/global/meshes/MESH |
v2 API
Cloud Service Mesh wird über das Feld serviceMesh
in der Service
-Ressource aktiviert.
Cloud Service Mesh Istio API
VirtualService API
Feldname | Typ | Feldbeschreibung |
---|---|---|
Gateways | String [] | Wenn die Gateways ein „external-mesh“ enthalten, gilt der virtuelle Dienst nur für Arbeitslasten, die nicht zu GKE gehören. 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 bei Arbeitslasten, die nicht von GKE verwaltet werden, kein Namespace verwendet wird, wird das Feld „exportTo“ bei virtuellen Diensten vom Typ „external-mesh“ ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „Mesh“ oder Gateways funktionieren weiterhin 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 weiterhin 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 weiterhin 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 weiterhin 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 weiterhin wie erwartet für GKE-Arbeitslasten. |
tcp | tcpRoute[] | Wird für virtuellen Dienst mit externem Mesh ignoriert. Sie funktionieren jedoch weiterhin für virtuelle Dienste mit „Mesh“ oder Gateways funktionieren weiterhin wie erwartet für GKE-Arbeitslasten. |
Istio Auto mTLS und sichere Benennung
Derzeit unterstützt Cloud Service Mesh automatische Istio MutualTLS- und Secure Naming-Funktionen für Anfragen zwischen GKE-Diensten.
In der Vorabversion werden für Arbeitslasten, die nicht zu GKE gehören und mit GKE-Arbeitslasten/-Diensten kommunizieren, weder Istio Auto MTLS noch Secure Naming verwendet. Der Traffic wird im Klartext übertragen. Achten Sie darauf, dass GKE-Dienste eine permissive mTLS-Richtlinie haben (die Standardeinstellung der Istio API), die mTLS-Traffic von GKE-Arbeitslasten und Klartext von nicht GKE-Arbeitslasten akzeptiert.
Mit dem folgenden Befehl können Sie prüfen, ob die PeerAuthentication im permissiven Modus ist:
# 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 Telemetry API, um Cloud Logging und Cloud Monitoring für GKE-Arbeitslasten zu aktivieren und zu deaktivieren. Das funktioniert auch für Arbeitslasten, die nicht von GKE ausgeführt werden.
Zielregel
In der Vorabversion wird das DestinationRule
Targeting auf die virtuellen Dienste „external-mesh“ unterstützt, mit Ausnahme der folgenden Felder: trafficPolicy.tls
Sidecar API
Die Sidecar API ist nicht für Arbeitslasten außerhalb von GKE verfügbar. Nicht-GKE-Arbeitslasten können alle virtuellen Dienste sehen, die auf „external-mesh“ beschränkt sind, ohne von Sidecar-Sichtbarkeitsregeln gefiltert zu werden.
Security API – Autorisierungsrichtlinie, Richtlinie für die Anfrageauthentifizierung
Sie gelten nicht für Nicht-GKE-Arbeitslasten, die als Clients fungieren und ausgehenden Traffic senden. Es werden weiterhin GKE-Arbeitslasten angewendet, die eingehenden Traffic erhalten.
GCPBackend API
Feldname | Typ | Feldbeschreibung |
---|---|---|
GCPBackend | Struktur (in Code: struct) | Schema für die GCPBackend-Ressource. |
TypeMeta | metav1.TypeMeta | Eingebetteter Datentyp zum Speichern von Metadaten wie „Art“ und „API-Version“. |
ObjectMeta | metav1.ObjectMeta | Eingebetteter Datentyp zum Speichern von Metadaten wie Name, Namespace, Labels und Anmerkungen. |
Spezifikation | GCPBackendSpec | Spezifikation für die GCPBackend-Ressource, die den gewünschten Status definiert. |
GCPBackendSpec | Struktur (in Code: struct) | Definiert den gewünschten Status der GRPCRoute. |
BackendService | *BackendServiceBackend | Definiert einen Back-End-Dienst. Optional: |
BackendServiceBackend | Struktur (in Code: struct) | Identifiziert einen Backend-Dienst. |
Name | String | Name des Backend-Dienstes. Er muss zwischen 1 und 49 Zeichen lang sein, einem bestimmten Muster folgen und nur aus Kleinbuchstaben, Bindestrichen und Zahlen bestehen. |
Standort | Standort | Speicherort des Backend-Dienstes. Muss für CSM „Global“ sein. (regional/global für verwaltete Load Balancer) Standardmäßig ist derselbe Standort wie der Cluster festgelegt. |
Projekt | String | Projekt-ID des Back-End-Dienstes. Standardmäßig ist das Projekt des GKE-Clusters festgelegt. Sie muss zwischen 6 und 30 Zeichen lang sein und einem bestimmten Muster folgen. Derzeit müssen sich der Backend-Dienst und der GKE-Cluster im selben Projekt befinden. |
GCPBackendList | Struktur (in Code: struct) | Enthält eine Liste von GCP-Backends. |
Elemente | []*GCPBackend | Array von GCPBackend-Pointern, die die Liste der GCPBackend-Ressourcen darstellen. |
ListMeta | metav1.ListMeta | Eingebetteter Datentyp zum Speichern von Listenmetadaten wie Ressourcenversion und Weiter-Token für die Paginierung. |