Documentation de référence de l'API Cloud Run
Cette page fournit une référence des API utilisées pour configurer Cloud Service Mesh pour les charges de travail Cloud Run.
API Cloud Run
API v1
Cloud Service Mesh est activé à l'aide d'une annotation de niveau de révision. La valeur de cette annotation est le nom du réseau en arrière-plan du cluster Istio Cloud Service Mesh.
Annotation | Valeur |
---|---|
run.googleapis.com/mesh | projects/PROJECT/locations/global/meshes/MESH |
API v2
Cloud Service Mesh est activé à l'aide du champ serviceMesh
dans la ressource Service
.
API Istio Cloud Service Mesh
API VirtualService
Nom du champ | Type | Description du champ |
---|---|---|
gateways | Chaîne [] | Si les passerelles incluent un "external-mesh", le service virtuel ne s'applique qu'aux charges de travail autres que GKE. Si "mesh" est spécifié avec "external-mesh", le service virtuel s'applique aux charges de travail autres que GKE et GKE. |
exportTo | chaîne | Étant donné que les charges de travail autres que GKE n'ont pas de concept d'espace de noms, les services virtuels "external-mesh" ignorent le champ exportTo. Toutefois, elles continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
httpRoute.HTTPMatchRequest.SourceLabels | map<string, string=""></string,> | Sera ignoré pour les services virtuels "external-mesh". Toutefois, ils continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
httpRoute.HTTPMatchRequest.SourceNamespace | chaîne | Sera ignoré pour les services virtuels "external-mesh". Toutefois, elles continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
httpRoute.HTTPMatchRequest.Gateways | chaîne[] | Sera ignoré pour les services virtuels "external-mesh". Toutefois, elles continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
tls | tlsRoute[] | Sera ignoré pour les services virtuels "external-mesh". Toutefois, elles continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
tcp | tcpRoute[] | Sera ignoré pour le service virtuel de maillage externe. Toutefois, elles continueront de fonctionner pour les services virtuels qui disposent de "mailles" ou de passerelles, et fonctionneront comme prévu pour les charges de travail GKE. |
Istio Auto mTLS et dénomination sécurisée
Actuellement, Cloud Service Mesh est compatible avec le protocole TLS mutuel Istio automatique et le nom de domaine sécurisé pour les requêtes entre les services GKE.
Pour la version Preview, les charges de travail autres que GKE qui communiquent avec des charges de travail/services GKE n'utiliseront pas le mTLS automatique Istio ni le nom sécurisé. Le trafic sera au format texte brut. Assurez-vous que les services GKE disposent d'une règle mTLS permissive (qui est la valeur par défaut de l'API Istio) qui accepte le trafic mTLS des charges de travail GKE et le texte brut des charges de travail autres que GKE.
Utilisez la commande suivante pour vérifier si PeerAuthentication est en mode permissif:
# 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
Télémétrie MeshConfig
Cloud Service Mesh est compatible avec l'API de télémétrie MeshConfig pour activer et désactiver Cloud Logging et Cloud Monitoring pour les charges de travail GKE. Cela fonctionne de la même manière pour les charges de travail autres que GKE.
Règle de destination
Pour la version Preview, le ciblage DestinationRule
des services virtuels "external-mesh" sera pris en charge, à l'exception des champs suivants: trafficPolicy.tls
API Sidecar
L'API Sidecar ne s'applique pas aux charges de travail autres que GKE. Les charges de travail autres que GKE pourront voir tous les services virtuels de portée "external-mesh" sans être filtrés par des règles de visibilité Sidecar.
API de sécurité : règles d'autorisation et d'authentification des requêtes
Elles ne s'appliquent pas aux charges de travail autres que GKE qui agissent en tant que clients envoyant du trafic sortant. Ils continueront d'appliquer les charges de travail GKE qui reçoivent du trafic entrant.
API GCPBackend
Field Name (Nom du champ) | Type | Description du champ |
---|---|---|
GCPBackend | struct | Schéma de la ressource GCPBackend. |
TypeMeta | metav1.TypeMeta | Structure intégrée permettant de stocker des informations de métadonnées telles que le type et la version de l'API. |
ObjectMeta | metav1.ObjectMeta | Structure intégrée permettant de stocker des informations de métadonnées telles que le nom, l'espace de noms, les libellés, les annotations, etc. |
Spécification | GCPBackendSpec | Spécification de la ressource GCPBackend, qui définit son état souhaité. |
GCPBackendSpec | struct | Définit l'état souhaité de GRPCRoute. |
CloudRun | *CloudRunBackend | Définit un backend exécuté dans Cloud Run (facultatif). |
CloudRunBackend | struct | Identifie un service exécuté sur Cloud Run. |
Service | chaîne | Nom du service Cloud Run. Doit comporter entre 1 et 49 caractères, suivre un format spécifique et ne contenir que des lettres minuscules, des tirets et des chiffres. |
Régions | []Région | Régions du service Cloud Run. Vous devez indiquer exactement une région. |
Projet | chaîne | ID du projet du service Cloud Run. La valeur par défaut est le même projet que le cluster GKE. Doit comporter entre 6 et 30 caractères et suivre un modèle spécifique. Actuellement, le service Cloud Run et le cluster GKE doivent appartenir au même projet. |
GCPBackendList | struct | Contient une liste de GCPBackends. |
Éléments | []*GCPBackend | Tableau de pointeurs GCPBackend représentant la liste des ressources GCPBackend. |
ListMeta | metav1.ListMeta | Structure intégrée permettant de stocker des informations de métadonnées de liste telles que la version de la ressource et le jeton de continuation pour la pagination. |