Cloud Run API-Referenz
Auf dieser Seite finden Sie eine Referenz für die APIs, mit denen Service Mesh für Cloud Run-Arbeitslasten konfiguriert wird.
Cloud Run V1 API (google.cloud.run.v1)
Das Service Mesh wird mit einer Systemanmerkung auf Versionsebene aktiviert. Der Wert dieser Anmerkung 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> |
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 für GKE-Arbeitslasten wie erwartet. |
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 Authentifizierungsanfrage
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 „Kind“ 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. |
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. Er 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. Standardmäßig ist das Projekt des GKE-Cluster festgelegt. Sie muss zwischen 6 und 30 Zeichen lang sein und einem bestimmten Muster folgen. Derzeit müssen sich der Cloud Run-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 | Eingebettetes Markup zum Speichern von Listenmetadaten wie Ressourcenversion und Weiter-Token für die Paginierung. |