Documentation de référence de l'API Cloud Run

Cette page fournit une référence pour les 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 au niveau de la révision. La valeur de cette annotation correspond au nom du maillage sous-jacent 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 "maillage externe", le service virtuel ne s'applique qu'aux charges de travail non GKE.

Si "mesh" est spécifié avec "external-mesh", le service virtuel s'appliquera aux charges de travail non GKE et GKE.
exportTo chaîne Étant donné que les charges de travail non GKE n'ont pas de concept d'espace de noms, les services virtuels "external-mesh" ignoreront le champ "exportTo".

Toutefois, ils continueront de fonctionner comme prévu pour les services virtuels qui comportent des "mailles" ou des passerelles 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 comme prévu pour les services virtuels qui comportent un "maillage" ou des passerelles pour les charges de travail GKE.
httpRoute.HTTPMatchRequest.SourceNamespace chaîne Sera ignoré pour les services virtuels "external-mesh".

Toutefois, ils continueront de fonctionner comme prévu pour les services virtuels qui comportent des "mailles" ou des passerelles pour les charges de travail GKE.
httpRoute.HTTPMatchRequest.Gateways chaîne[] Sera ignoré pour les services virtuels "external-mesh".

Toutefois, ils continueront de fonctionner comme prévu pour les services virtuels qui comportent des "mailles" ou des passerelles pour les charges de travail GKE.
tls tlsRoute[] Sera ignoré pour les services virtuels "external-mesh".

Toutefois, ils continueront de fonctionner comme prévu pour les services virtuels qui comportent des "mailles" ou des passerelles pour les charges de travail GKE.
tcp tcpRoute[] Sera ignoré pour le service virtuel de maillage externe.

Toutefois, ils continueront de fonctionner comme prévu pour les services virtuels qui comportent des "mailles" ou des passerelles pour les charges de travail GKE.

Authentification TLS mutuelle automatique Istio et dénomination sécurisée

Actuellement, Cloud Service Mesh est compatible avec l'authentification TLS mutuelle Istio automatique et le nommage sécurisé pour les requêtes entre les services GKE.

Pour la version Preview, les charges de travail non-GKE communiquant avec des charges de travail/services GKE n'utiliseront pas Istio Auto MTLS ni Secure Naming. Le trafic sera en 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 provenant des charges de travail GKE et le texte brut provenant des charges de travail non GKE.

Exécutez 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. Le fonctionnement sera similaire pour les charges de travail non-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'appliquera pas aux charges de travail non-GKE. Les charges de travail non-GKE pourront voir tous les services virtuels définis sur "external-mesh" sans être filtrées par des règles de visibilité Sidecar.

API Security : règles d'autorisation, règles d'authentification des requêtes

Elles ne s'appliqueront pas aux charges de travail non-GKE qui agissent en tant que clients envoyant du trafic sortant. Ils continueront à 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 pour stocker des informations de métadonnées telles que le type et la version de l'API.
ObjectMeta metav1.ObjectMeta Structure intégrée pour 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.
BackendService *BackendServiceBackend Définit un service de backend. (Facultatif).
BackendServiceBackend struct Identifie un service de backend.
Nom chaîne Nom BackendService. Doit comporter entre 1 et 49 caractères, suivre un format spécifique et ne contenir que des lettres minuscules, des traits d'union et des chiffres.
Emplacement Emplacement Emplacement du BackendService. Doit être défini sur "Global" pour CSM. (régional/global pour l'équilibreur de charge géré). Par défaut, il s'agit du même emplacement que le cluster.
Projet chaîne ID de projet du BackendService. 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 format spécifique. Actuellement, BackendService et le cluster GKE doivent se trouver dans le 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 les informations de métadonnées de la liste, telles que la version de la ressource et le jeton de continuation pour la pagination.