Documentation de référence de l'API Cloud Run
Cette page fournit une référence pour les API utilisées pour configurer Service Mesh pour les charges de travail Cloud Run.
API Cloud Run V1 (google.cloud.run.v1)
Le maillage de services est activé à l'aide d'une annotation système au niveau de la révision. La valeur de cette annotation est le nom du maillage de sauvegarde du cluster Cloud Service Mesh Istio.
| Annotation | Valeur |
|---|---|
| run.googleapis.com/mesh | projects/PROJECT>/locations/global/meshes/MESH> |
API Cloud Service Mesh Istio
API VirtualService
| Nom du champ | Type | Description du champ |
|---|---|---|
| gateways | String [] | Si les passerelles incluent un "external-mesh", 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'applique 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" ignorent le champ exportTo. Toutefois, ils continueront de fonctionner pour les services virtuels qui comportent "mesh" ou les passerelles continueront de fonctionner 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 comportent "mesh" ou les passerelles continueront de fonctionner comme prévu pour les charges de travail GKE. |
| httpRoute.HTTPMatchRequest.SourceNamespace | chaîne | Sera ignoré pour les services virtuels "external-mesh". Toutefois, ils continueront de fonctionner pour les services virtuels qui comportent "mesh" ou les passerelles continueront de fonctionner comme prévu pour les charges de travail GKE. |
| httpRoute.HTTPMatchRequest.Gateways | string[] | Sera ignoré pour les services virtuels "external-mesh". Toutefois, ils continueront de fonctionner pour les services virtuels qui comportent "mesh" ou les passerelles continueront de fonctionner comme prévu pour les charges de travail GKE. |
| tls | tlsRoute[] | Sera ignoré pour les services virtuels "external-mesh". Toutefois, ils continueront de fonctionner pour les services virtuels qui comportent "mesh" ou les passerelles continueront de fonctionner comme prévu pour les charges de travail GKE. |
| tcp | tcpRoute[] | Sera ignoré pour le service virtuel external-mesh. Toutefois, ils continueront de fonctionner pour les services virtuels qui comportent "mesh" ou les passerelles continueront de fonctionner comme prévu pour les charges de travail GKE. |
MTLS automatique et nommage sécurisé Istio
Actuellement, Cloud Service Mesh est compatible avec le MTLS Istio automatique et le nommage sécurisé pour les requêtes entre les services GKE.
Pour la version bêta, les charges de travail non GKE qui communiquent avec des charges de travail/services GKE n'utilisent pas le MTLS Istio automatique ni le nommage sécurisé. Le trafic sera en texte brut. Assurez-vous que les services GKE disposent d'une stratégie 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 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. Cela fonctionnera de la même manière pour les charges de travail non GKE.
Règle de destination
Pour la version bêta, DestinationRule ciblant les services virtuels "external-mesh" sera compatible, à 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 limités à "external-mesh" sans être filtrés par des règles de visibilité Sidecar.
API de sécurité : stratégie d'autorisation, stratégie 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. Elles continueront de s'appliquer aux charges de travail GKE qui reçoivent du trafic entrant.
API GCPBackend
| 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. |
| Spec | GCPBackendSpec | Spécification de la ressource GCPBackend, définissant son état souhaité. |
| GCPBackendSpec | struct | Définit l'état souhaité de GRPCRoute. |
| CloudRun | *CloudRunBackend | Définit un backend s'exécutant dans CloudRun (facultatif). |
| CloudRunBackend | struct | Identifie un service s'exécutant sur Cloud Run. |
| Service | chaîne | Nom du service CloudRun. Doit comporter entre 1 et 49 caractères, suivre un modèle spécifique et ne contenir que des lettres minuscules, des traits d'union et des chiffres. |
| Régions | []Région | Régions du service CloudRun. Une seule région doit être fournie. |
| Projet | chaîne | ID de projet du service CloudRun. Par défaut, il s'agit du 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 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 pour stocker des informations de métadonnées de liste telles que la version de la ressource et le jeton de continuation pour la pagination. |