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 DestinationRuleTargeting 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.