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. |
CloudRun | *CloudRunBackend | Definiert ein Back-End, das in Cloud Run ausgeführt wird (optional). |
CloudRunBackend | Struktur (in Code: struct) | Gibt einen Dienst an, der in Cloud Run ausgeführt wird. |
Dienst | String | Name des Cloud Run-Dienstes. Muss zwischen 1 und 49 Zeichen lang sein, einem bestimmten Muster folgen und nur aus Kleinbuchstaben, Bindestrichen und Zahlen bestehen. |
Regionen | []Region | Regionen des Cloud Run-Dienstes. Es muss genau eine Region angegeben werden. |
Projekt | String | Projekt-ID des Cloud Run-Dienstes. Die Standardeinstellung ist dasselbe Projekt wie der GKE-Cluster. Muss zwischen 6 und 30 Zeichen lang sein und einem bestimmten Muster folgen. Der Cloud Run-Dienst und der GKE-Cluster müssen sich derzeit 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. |