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 Anmerkung auf Revisionsebene aktiviert. Der Wert dieser Annotation ist der Name des zugrunde liegenden 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 über das Feld serviceMesh 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, wird der virtuelle Dienst sowohl auf Nicht-GKE- als auch auf GKE-Arbeitslasten angewendet.
exportTo String Da bei Nicht-GKE-Arbeitslasten kein Namespace-Konzept vorhanden ist, wird das Feld „exportTo“ bei virtuellen „external-mesh“-Diensten ignoriert.

Sie funktionieren jedoch weiterhin für virtuelle Dienste, die „Mesh“ oder Gateways haben, und 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, die „Mesh“ oder Gateways haben, und 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, die „Mesh“ oder Gateways haben, und 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, die „Mesh“ oder Gateways haben, und 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, die „Mesh“ oder Gateways haben, und wie erwartet für GKE-Arbeitslasten.

Istio Auto MTLS und Secure Naming

Derzeit unterstützt Cloud Service Mesh Automatic Istio MutualTLS und Secure Naming für Anfragen zwischen GKE-Diensten.

In der Vorschauversion wird für Nicht-GKE-Arbeitslasten, die mit GKE-Arbeitslasten/-Diensten kommunizieren, weder Istio Auto MTLS noch Secure Naming verwendet. Der Traffic ist Nur-Text. Achten Sie darauf, dass GKE-Dienste eine permissive MTLS-Richtlinie haben (die Istio API-Standardeinstellung), die MTLS-Traffic von GKE-Arbeitslasten und Nur-Text von Nicht-GKE-Arbeitslasten akzeptiert.

Verwenden Sie den folgenden Befehl, um zu prüfen, ob PeerAuthentication im moderaten 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 Nicht-GKE-Arbeitslasten.

Zielregel

In der Vorabversion wird das DestinationRule-Targeting für die virtuellen Dienste „external-mesh“ unterstützt, mit Ausnahme der folgenden Felder: trafficPolicy.tls

Sidecar API

Die Sidecar API ist nicht für Nicht-GKE-Arbeitslasten anwendbar. Nicht-GKE-Arbeitslasten können alle virtuellen Dienste sehen, die auf „external-mesh“ beschränkt sind, ohne dass sie durch Sidecar-Sichtbarkeitsregeln gefiltert werden.

Security API – Autorisierungsrichtlinie, Richtlinie für die Authentifizierung von Anfragen

Sie gelten nicht für Nicht-GKE-Arbeitslasten, die als Clients fungieren und ausgehenden Traffic senden. Sie werden weiterhin auf GKE-Arbeitslasten angewendet, 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, Annotationen usw.
Spezifikation GCPBackendSpec Spezifikation für die GCPBackend-Ressource, die ihren 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) Gibt einen Backend-Dienst an.
Name String Name des Backend-Dienstes. Muss zwischen 1 und 49 Zeichen lang sein, einem bestimmten Muster folgen und nur aus Kleinbuchstaben, Bindestrichen und Zahlen bestehen.
Standort Standort Speicherort des BackendService. Muss für CSM global sein. (regional/global für verwaltete Load Balancer) Standardmäßig wird derselbe Standort wie für den Cluster verwendet.
Projekt String Projekt-ID des BackendService. Die Standardeinstellung ist 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 Listenmetadaten wie Ressourcenversion und Fortsetzungstoken für die Paginierung.