Sortie VPC directe avec un réseau VPC partagé

Vous pouvez activer votre job ou votre service Cloud Run pour envoyer du trafic vers un réseau VPC partagé en utilisant la sortie VPC directe sans connecteur d'accès au VPC sans serveur.

Cette page explique comment configurer les autorisations IAM de Cloud Run pour utiliser le sous-réseau du réseau VPC partagé, et comment placer votre service ou votre job sur le sous-réseau partagé.

Avant de commencer

Lorsque vous utilisez la sortie VPC directe, assurez-vous que votre sous-réseau dispose d'au moins quelques centaines d'adresses IP disponibles. Si le nombre total d'instances pour l'ensemble de vos services Cloud Run dépasse 100, nous vous recommandons d'avoir au moins quatre fois le nombre total disponible.

Limites

Les limites suivantes s'appliquent aux services et aux jobs Cloud Run :

  • Cloud Run accepte un débit pouvant atteindre 1 Gbit/s par instance individuelle. Au-delà de ce nombre, les performances sont limitées.
  • Un quota d'utilisation de Cloud Run limite le nombre maximal d'instances que vous pouvez configurer pour utiliser la sortie VPC directe. Le nombre maximal est configuré par révision ou exécution de job Cloud Run. Pour augmenter les limites par défaut, consultez la section Augmenter les quotas. Vous pouvez vérifier votre quota à l'aide de la console Google Cloud.

  • Les services et jobs Cloud Run peuvent rencontrer des interruptions de connexion lors d'événements de maintenance de l'infrastructure de mise en réseau. Nous vous recommandons d'utiliser des bibliothèques clientes pouvant gérer les réinitialisations occasionnelles des connexions.
Les limites suivantes s'appliquent uniquement aux jobs Cloud Run, et non aux services :
  • La sortie VPC directe pour les jobs Cloud Run n'est disponible qu'en version preview.
  • Pour garantir la bonne exécution des jobs, n'utilisez la sortie VPC directe que pour les jobs qui ne nécessitent pas plus de huit instances simultanées, et veillez à réserver un minimum de 1 024 adresses IP.

Les éléments suivants ne sont pas compatibles avec la sortie VPC directe :

  • Les journaux de flux VPC n'indiquent pas le nom du service ou de la révision Cloud Run.
  • Les journaux de flux VPC ne sont pas consignés pour des ressources autres que des VM telles que Cloud Run ou des machines sur site.
  • Journalisation des règles de pare-feu
  • Mise en miroir de paquets
  • Network Intelligence Center
  • Trafic IPv6
  • Utilisation de tags réseau dans les règles de pare-feu d'entrée appliquées à la ressource de destination.
  • Utilisation de l'identité du service en tant que compte de service source dans les règles de pare-feu d'entrée appliquées à la ressource de destination.
  • Les règles de pare-feu ne peuvent pas utiliser de tags Resource Manager associés à des charges de travail Cloud Run.
  • Les jobs Cloud Run exécutés pendant plus d'une heure peuvent subir des interruptions de connexion. Cela peut se produire lors d'événements de maintenance liés à la migration du job d'une machine à une autre. Le conteneur reçoit un signal SIGTSTP 10 secondes avant l'événement et un signal SIGCONT après l'événement. Une fois que le conteneur a reçu le signal SIGCONT, réessayez la connexion.

Configurer les autorisations IAM

Pour que Cloud Run dans un projet de service VPC partagé puisse accéder à un réseau VPC partagé, vous devez d'abord vous assurer que l'agent de service Cloud Run dispose des autorisations suffisantes pour utiliser le sous-réseau.

  1. Pour accéder au réseau VPC partagé, accordez des autorisations suffisantes à l'agent de service Cloud Run en ajoutant l'un des rôles suivants:

    • Utilisateur de réseau Compute (compute.networkUser) sur le projet hôte de VPC partagé.

      Par exemple, exécutez la commande suivante.

      gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
      --role "roles/compute.networkUser"

      Remplacez les éléments suivants :

      • HOST_PROJECT_ID : ID de votre projet hôte de VPC partagé.
      • SERVICE_PROJECT_NUMBER: numéro de projet du service VPC partagé dans lequel vous déployez votre service ou votre job Cloud Run.
    • Lecteur de réseau Compute (compute.networkViewer) sur le projet hôte de VPC partagé et le rôle Utilisateur de réseau Compute (compute.networkUser) sur le sous-réseau VPC partagé.

      Par exemple, pour accorder le rôle de lecteur de réseau de Compute sur le sous-réseau, exécutez la commande suivante:

      gcloud compute networks subnets add-iam-policy-binding SUBNET_NAME \
        --region REGION \
        --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \
        --role "roles/compute.networkUser" \
        --project HOST_PROJECT_ID

      Remplacez les éléments suivants :

      • SUBNET_NAME : nom complet de la ressource du sous-réseau sur lequel vous souhaitez exécuter vos services Cloud Run.
      • REGION: région de votre service Cloud Run, qui doit correspondre à la région de votre sous-réseau.
      • SERVICE_PROJECT_NUMBER: numéro de projet du service VPC partagé dans lequel vous déployez votre service ou votre job Cloud Run.
      • HOST_PROJECT_ID : ID de votre projet hôte de VPC partagé.
  2. L'agent de service Cloud Run nécessite le rôle Agent de service Cloud Run sur votre projet Cloud Run. Vous pouvez vérifier que le rôle n'a pas été supprimé manuellement en exécutant la commande suivante:

    gcloud projects get-iam-policy SERVICE_PROJECT_ID \
      --flatten bindings \
      --filter "bindings.role:roles/run.serviceAgent"

    Remplacez SERVICE_PROJECT_ID par l'ID de projet de votre service ou job Cloud Run.

Pour un contrôle plus précis, vous pouvez vous assurer que l'agent de service Cloud Run dispose des autorisations suivantes:

  • compute.networks.get sur le projet hôte de VPC partagé
  • compute.subnetworks.get sur le projet hôte ou le sous-réseau spécifique
  • compute.subnetworks.use sur le projet hôte ou le sous-réseau spécifique
  • compute.addresses.get sur le projet de service VPC partagé
  • compute.addresses.list sur le projet de service VPC partagé
  • compute.addresses.createInternal sur le projet de service VPC partagé
  • compute.addresses.deleteInternal sur le projet de service VPC partagé

Attribution d'adresses IP

Pour placer votre job ou service Cloud Run sur un réseau VPC, vous devez spécifier un réseau et un sous-réseau. Cloud Run alloue les adresses IP de votre sous-réseau.

Les adresses IP étant éphémères, ne créez pas de règles basées sur des adresses IP individuelles. Si vous devez créer une règle basée sur les adresses IP, par exemple dans les règles de pare-feu, vous devez utiliser la plage d'adresses IP de l'ensemble du sous-réseau.

Pour modifier le réseau ou le sous-réseau utilisé par votre service ou votre job, déployez une nouvelle révision de service ou exécutez une nouvelle tâche de job utilisant les nouvelles valeurs de réseau et de sous-réseau.

Effectuer un scaling à la hausse

Pour permettre un scaling rapide à la hausse en cas de surcharge du trafic, Cloud Run alloue les adresses IP avant qu'elles ne soient nécessaires.

À un moment donné, le nombre d'adresses IP allouées est probablement supérieur au nombre d'instances qui existent. Pour vous assurer que Cloud Run peut obtenir suffisamment d'adresses IP, assurez-vous que votre sous-réseau dispose d'au moins quelques centaines d'adresses IP disponibles. Si le nombre total d'instances du sous-réseau pour tous les services et jobs Cloud Run dépasse 100, nous vous recommandons d'avoir au moins quatre fois (4 fois) le nombre total disponible. Si Cloud Run ne peut pas allouer plus d'adresses IP, il ne peut pas démarrer d'autres instances de service ni tâches de jobs tant que davantage d'adresses IP ne sont pas disponibles. Si votre espace d'adresses IP est limité, consultez la section Plages d'adresses IP compatibles pour plus d'options. Pour optimiser l'attribution d'adresses IP et simplifier la gestion, placez plusieurs services ou jobs sur le même sous-réseau.

Scaling à la baisse

Même après le scaling à zéro instance de tous les services ou jobs, Cloud Run réserve certaines adresses IP du sous-réseau pendant 20 minutes au maximum au cas où des services ou jobs devraient évoluer à nouveau rapidement. Chaque instance nécessite une adresse IP, mais Cloud Run réserve un masque de sous-réseau minimal /28 au début. Une fois les 16 instances épuisées, Cloud Run crée un nouveau sous-réseau.

Pour supprimer le sous-réseau, vous devez d'abord supprimer ou redéployer vos services ou jobs Cloud Run afin de cesser d'utiliser le sous-réseau, puis attendre une à deux heures.

Plages d'adresses IP compatibles

Cloud Run accepte les plages IPv4 suivantes pour votre sous-réseau :

  • RFC 1918 (recommandé)
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Classe E (non recommandé avec les configurations sur site)
    • 240.0.0.0/4

Déployer un service

La sortie directe VPC permet à votre service Cloud Run d'envoyer du trafic vers un réseau VPC partagé sans connecteur d'accès au VPC sans serveur. Les coûts réseau sont réduits à zéro comme le service lui-même. Vous pouvez également ajouter des tags réseau directement sur les révisions du service Cloud Run pour une sécurité réseau plus précise, par exemple en appliquant des règles de pare-feu VPC.

Vous pouvez configurer la sortie directe du VPC avec un service à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.

Console

  1. Dans la console Google Cloud, accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Cliquez sur Déployer un conteneur et sélectionnez Service si vous configurez un nouveau service. Si vous configurez et déployez un service existant, cliquez sur ce service, puis sur Modifier et déployer la nouvelle révision.

  3. Si vous configurez un nouveau service, remplissez la page initiale des paramètres du service selon vos besoins, puis cliquez sur Conteneur(s), volumes, mise en réseau et sécurité pour développer la page de configuration du service.

  4. Cliquez sur l'onglet Réseau.

  5. Cliquez sur Se connecter à un VPC pour le trafic sortant.

  6. Cliquez sur Envoyer le trafic directement à un VPC.

  7. Sélectionnez Réseaux partagés avec moi.

  8. Dans le champ Réseau, sélectionnez le réseau VPC partagé vers lequel vous souhaitez envoyer du trafic.

  9. Dans le champ Sous-réseau, sélectionnez le sous-réseau à partir duquel votre service reçoit des adresses IP.

  10. Facultatif: saisissez les noms des tags réseau que vous souhaitez associer à votre ou vos services. Les tags réseau sont spécifiés au niveau de la révision. Chaque révision de service peut avoir des tags réseau différents, tels que network-tag-2.

  11. Dans le champ Routage du trafic, sélectionnez l'une des options suivantes:

    • Acheminez uniquement les requêtes adressées à des adresses IP privées vers le VPC pour envoyer uniquement le trafic vers des adresses internes via le réseau VPC partagé.
    • Acheminez tout le trafic vers le VPC pour envoyer tout le trafic sortant via le réseau VPC partagé.
  12. Cliquez sur Créer ou Déployer.

  13. Pour vérifier que votre service se trouve sur votre réseau VPC partagé, cliquez sur le service, puis sur l'onglet Mise en réseau. Le réseau et le sous-réseau sont répertoriés dans la fiche VPC.

Vous pouvez désormais envoyer des requêtes à partir de votre service Cloud Run vers n'importe quelle ressource du réseau VPC partagé, conformément à vos règles de pare-feu.

gcloud

Pour placer votre service sur le sous-réseau partagé, spécifiez les noms de ressources complets du sous-réseau et du réseau VPC partagé en exécutant la commande suivante:

gcloud run deploy SERVICE_NAME \
  --image IMAGE_URL \
  --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
  --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
  --network-tags NETWORK_TAG_NAMES \
  --vpc-egress=EGRESS_SETTING \
  --region REGION \
  --max-instances MAX
  

Remplacez les éléments suivants :

  • SERVICE_NAME : nom de votre service Cloud Run.
  • IMAGE_URL: URL de l'image du service.
  • HOST_PROJECT_ID: ID de votre projet VPC partagé.
  • VPC_NETWORK : nom complet de la ressource de votre réseau VPC partagé.
  • REGION: région de votre service Cloud Run, qui doit correspondre à la région de votre sous-réseau.
  • SUBNET_NAME : nom complet de la ressource de votre sous-réseau.
  • Facultatif: NETWORK_TAG_NAMES par les noms des tags réseau séparés par une virgule que vous souhaitez associer à un service. Pour les services, les tags réseau sont spécifiés au niveau de la révision. Chaque révision de service peut avoir des tags réseau différents, tels que network-tag-2.
  • EGRESS_SETTING par une valeur de paramètre de sortie :
    • all-traffic: achemine tout le trafic sortant via le réseau VPC partagé.
    • private-ranges-only: achemine uniquement le trafic destiné à des adresses internes via le réseau VPC partagé.
  • MAX: nombre maximal d'instances à utiliser pour le réseau VPC partagé. Le nombre maximal d'instances autorisées pour les services est de 100.

Pour plus d'informations et d'arguments facultatifs, consultez la documentation de référence sur gcloud.

YAML

  1. Si vous créez un service, ignorez cette étape. Si vous mettez à jour un service existant, téléchargez sa configuration YAML :

    gcloud run services describe SERVICE --format export > service.yaml
  2. Mettez à jour les attributs suivants :

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Remplacez :

    • SERVICE_NAME par le nom de votre service Cloud Run. Les noms de service doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
    • REGION par la région de votre service Cloud Run, qui doit correspondre à la région de votre sous-réseau.
    • NETWORK avec le nom complet de la ressource de votre réseau VPC partagé.
    • SUBNET_NAME par le nom complet de la ressource de votre sous-réseau.
    • Facultatif: NETWORK_TAG_NAMES par les noms des tags réseau que vous souhaitez associer à un service. Pour les services, les tags réseau sont spécifiés au niveau de la révision. Chaque révision de service peut avoir des tags réseau différents, tels que network-tag-2.
    • EGRESS_SETTING par une valeur de paramètre de sortie :
      • all-traffic: achemine tout le trafic sortant via le réseau VPC partagé.
      • private-ranges-only: achemine uniquement le trafic destiné à des adresses internes via le réseau VPC partagé.
    • IMAGE par l'URL de votre image de conteneur de service.
  3. Créez ou mettez à jour le service à l'aide de la commande suivante :

    gcloud run services replace service.yaml

Terraform

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

  1. Ajoutez le code ci-dessous à votre fichier main.tf :

    /**
     * Copyright 2024 Google LLC
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    # Example configuration of a Cloud Run service with direct VPC
    
    resource "google_cloud_run_v2_service" "default" {
      name     = "cloudrun-service"
      location = "us-central1"
    
      deletion_protection = false # set to "true" in production
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

Vous pouvez éventuellement rendre votre service public si vous souhaitez autoriser un accès non authentifié à celui-ci.

Créer un job

La sortie VPC directe permet à votre job Cloud Run d'envoyer du trafic vers un réseau VPC partagé sans connecteur d'accès au VPC sans serveur. Vous pouvez également ajouter des tags réseau directement sur les jobs Cloud Run pour une sécurité réseau plus précise, par exemple en appliquant des règles de pare-feu VPC.

Vous pouvez configurer une sortie VPC directe avec un job à l'aide de la console Google Cloud, de Google Cloud CLI ou de YAML.

Console

  1. Dans la console Google Cloud, accédez à la page Cloud Run :

    Accédez à Cloud Run

  2. Si vous configurez un nouveau job, cliquez sur Déployer un conteneur et sélectionnez Job pour remplir le formulaire initial Créer un job selon vos besoins. Si vous configurez un job existant, cliquez sur l'onglet Jobs, sélectionnez un job, puis cliquez sur Modifier.

  3. Cliquez sur Conteneur, variables et secrets, connexions, sécurité pour développer la page des propriétés du job.

  4. Cliquez sur l'onglet Connexions.

  5. Cliquez sur Se connecter à un VPC pour le trafic sortant.

  6. Cliquez sur Envoyer le trafic directement à un VPC.

  7. Sélectionnez Réseaux partagés avec moi.

  8. Dans le champ Réseau, sélectionnez le réseau VPC partagé vers lequel vous souhaitez envoyer du trafic.

  9. Dans le champ Sous-réseau, sélectionnez le sous-réseau à partir duquel votre job reçoit des adresses IP.

  10. Facultatif: saisissez les noms des tags réseau que vous souhaitez associer à un job. Pour les jobs, les tags réseau sont spécifiés au niveau de l'exécution. Chaque exécution de job peut avoir des tags réseau différents, tels que network-tag-2.

  11. Dans le champ Routage du trafic, sélectionnez l'une des options suivantes:

    • Acheminez uniquement les requêtes adressées à des adresses IP privées vers le VPC pour envoyer uniquement le trafic vers des adresses internes via le réseau VPC partagé.
    • Acheminez tout le trafic vers le VPC pour envoyer tout le trafic sortant via le réseau VPC partagé.
  12. Cliquez sur Créer ou Mettre à jour.

  13. Pour vérifier que votre job se trouve sur votre réseau VPC partagé, cliquez sur le job, puis sur l'onglet Configuration. Le réseau et le sous-réseau sont répertoriés dans la fiche VPC.

Vous pouvez maintenant exécuter votre job Cloud Run et envoyer des requêtes à partir du job vers n'importe quelle ressource du réseau VPC partagé, conformément à vos règles de pare-feu.

gcloud

Pour placer votre job sur le sous-réseau partagé, spécifiez les noms de ressources complets du sous-réseau et du réseau VPC partagé en exécutant la commande suivante:

gcloud run jobs create JOB_NAME \
  --image IMAGE_URL \
  --network projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK \
  --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
  --network-tags NETWORK_TAG_NAMES \
  --vpc-egress=EGRESS_SETTING \
  --region REGION \
  

Remplacez les éléments suivants :

  • JOB_NAME par le nom de votre job Cloud Run
  • IMAGE_URL: URL de l'image du job.
  • HOST_PROJECT_ID : ID du projet hôte de VPC partagé.
  • VPC_NETWORK : nom complet de la ressource de votre réseau VPC partagé.
  • REGION: région de votre job Cloud Run, qui doit correspondre à la région du sous-réseau.
  • SUBNET_NAME : nom complet de la ressource de votre sous-réseau.
  • Facultatif: NETWORK_TAG_NAMES par les noms des tags réseau séparés par une virgule que vous souhaitez associer à un job. Chaque exécution de job peut avoir des tags réseau différents, tels que network-tag-2.
  • EGRESS_SETTING par une valeur de paramètre de sortie :
    • all-traffic: achemine tout le trafic sortant via le réseau VPC partagé.
    • private-ranges-only: achemine uniquement le trafic destiné à des adresses internes via le réseau VPC partagé.

Pour plus d'informations et d'arguments facultatifs, consultez la documentation de référence sur gcloud.

YAML

  1. Si vous créez un job, ignorez cette étape. Si vous mettez à jour un job existant, téléchargez sa configuration YAML :

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Mettez à jour les attributs suivants :

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB_NAME
      annotations:
        run.googleapis.com/launch-stage: BETA
      labels:
        cloud.googleapis.com/location: REGION
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'
            run.googleapis.com/vpc-access-egress: EGRESS_SETTING
        spec:
          containers:
          - image: IMAGE

    Remplacez :

    • JOB_NAME par le nom de votre job Cloud Run Les noms de job doivent comporter un maximum de 49 caractères et être uniques par région et par projet.
    • REGION par la région de votre job Cloud Run, qui doit correspondre à la région de votre sous-réseau.
    • NETWORK avec le nom complet de la ressource de votre réseau VPC partagé.
    • SUBNET par le nom complet de la ressource de votre sous-réseau.
    • Facultatif: NETWORK_TAG_NAMES par les noms des tags réseau que vous souhaitez associer à un job. Pour les jobs, les tags réseau sont spécifiés au niveau de l'exécution. Chaque exécution de job peut avoir des tags réseau différents, tels que network-tag-2.
    • EGRESS_SETTING par une valeur de paramètre de sortie :
      • all-traffic: achemine tout le trafic sortant via le réseau VPC partagé.
      • private-ranges-only: achemine uniquement le trafic destiné à des adresses internes via le réseau VPC partagé.
    • IMAGE par l'URL de votre image de conteneur de job.
  3. Créez ou mettez à jour le job à l'aide de la commande suivante :

    gcloud run jobs replace job.yaml

Déconnecter un service

Console

  • Pour supprimer votre service du réseau VPC partagé, procédez comme suit:

    1. Dans la console Google Cloud, accédez à la page Cloud Run :

      Accédez à Cloud Run

    2. Cliquez sur le service à supprimer, puis sur Modifier et déployer la nouvelle révision.

    3. Cliquez sur l'onglet Réseau.

    4. Désactivez l'option Se connecter à un VPC pour le trafic sortant.

    5. Cliquez sur Déployer.

    6. Pour vérifier que votre service ne se trouve plus sur votre réseau VPC partagé, cliquez sur l'onglet Mise en réseau. Le réseau et le sous-réseau ne sont plus répertoriés dans la fiche VPC.

  • Pour ne supprimer que les tags réseau tout en maintenant le service connecté au réseau VPC partagé:

    1. Cliquez sur le service contenant les tags réseau à supprimer, puis sur Modifier et déployer la nouvelle révision.

    2. Cliquez sur l'onglet Réseau.

    3. Effacez les noms des tags réseau que vous ne souhaitez plus associer à votre service.

    4. Cliquez sur Déployer.

gcloud

  • Pour supprimer votre service du réseau VPC partagé, exécutez la commande suivante:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • Pour ne supprimer que les tags réseau tout en maintenant le service connecté au réseau VPC partagé, exécutez la commande suivante:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network-tags

    Remplacez les éléments suivants :

    • SERVICE_NAME : nom de votre service Cloud Run.
    • REGION : région de votre service Cloud Run.

YAML

  • Pour supprimer votre service du réseau VPC partagé, procédez comme suit:

    1. Téléchargez la configuration YAML du service :

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Supprimez le contenu suivant de votre fichier service.yaml :

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Lieu

      • NETWORK : nom complet de la ressource de votre réseau VPC partagé.
      • SUBNET : nom complet de la ressource de votre sous-réseau.
      • Facultatif : NETWORK_TAG_NAMES : noms des tags réseau si vous les avez associés à un service.
    3. Mettez à jour le service à l'aide de la commande suivante :

      gcloud run services replace service.yaml
  • Pour ne supprimer que les tags réseau tout en maintenant le service connecté au réseau VPC partagé:

    1. Téléchargez la configuration YAML du service :

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Supprimez la variable tags du contenu de votre fichier service.yaml, en laissant les variables network et subnetwork en place, comme indiqué dans l'exemple suivant :

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET"}]'

      Remplacez les éléments suivants :

      • NETWORK : nom complet de la ressource de votre réseau VPC partagé.
      • SUBNET : nom complet de la ressource de votre sous-réseau.
    3. Mettez à jour le service à l'aide de la commande suivante :

      gcloud run services replace service.yaml

Déconnecter un job

Console

  • Pour supprimer votre job du réseau VPC partagé:

    1. Dans la console Google Cloud, accédez à la page Cloud Run :

      Accédez à Cloud Run

    2. Cliquez sur le job à supprimer, puis sur Modifier et déployer la nouvelle révision.

    3. Cliquez sur l'onglet Configuration.

    4. Désactivez l'option Se connecter à un VPC pour le trafic sortant.

    5. Cliquez sur Mettre à jour.

    6. Pour vérifier que votre job ne se trouve plus sur votre réseau VPC partagé, cliquez sur l'onglet Configuration. Le réseau et le sous-réseau ne sont plus répertoriés dans la fiche VPC.

  • Pour supprimer uniquement les tags réseau tout en maintenant le job connecté au réseau VPC partagé:

    1. Cliquez sur le job contenant les tags réseau à supprimer, puis sur Modifier et déployer la nouvelle révision.

    2. Cliquez sur l'onglet Connexions.

    3. Effacez les noms des tags réseau que vous ne souhaitez plus associer à votre job.

    4. Cliquez sur Mettre à jour.

gcloud

  • Pour supprimer votre job du réseau VPC partagé, exécutez la commande suivante:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Pour ne supprimer que les tags réseau tout en maintenant le job connecté au réseau VPC partagé, exécutez la commande suivante:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network-tags
      

    Remplacez les éléments suivants :

    • JOB_NAME par le nom de votre job Cloud Run
    • REGION : région de votre job Cloud Run.

YAML

  • Pour supprimer votre job du réseau VPC partagé:

    1. Téléchargez la configuration YAML du job :

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Supprimez le contenu suivant de votre fichier job.yaml :

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Lieu

      • NETWORK : nom complet de la ressource de votre réseau VPC partagé.
      • SUBNET : nom complet de la ressource de votre sous-réseau.
      • Facultatif: NETWORK_TAG_NAMES: noms des tags réseau si vous les avez associés à un job.
    3. Mettez à jour la tâche à l'aide de la commande suivante :

      gcloud run jobs replace job.yaml
  • Pour supprimer uniquement les tags réseau tout en maintenant le job connecté au réseau VPC partagé:

    1. Téléchargez la configuration YAML du job :

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Supprimez le contenu suivant de votre fichier job.yaml :

      run.googleapis.com/network-interfaces: '[{"network":"NETWORK","subnetwork":"SUBNET","tags":"NETWORK_TAG_NAMES"}]'

      Lieu

      • NETWORK : nom complet de la ressource de votre réseau VPC partagé.
      • SUBNET : nom complet de la ressource de votre sous-réseau.
      • Facultatif: NETWORK_TAG_NAMES: noms des tags réseau si vous les avez associés à un job.
    3. Mettez à jour la tâche à l'aide de la commande suivante :

      gcloud run jobs replace job.yaml

Dépannage

Impossible de supprimer le sous-réseau

Pour supprimer un sous-réseau, vous devez d'abord supprimer toutes les ressources qui l'utilisent. Si Cloud Run utilise un sous-réseau, vous devez dissocier Cloud Run du réseau VPC partagé ou le déplacer vers un autre sous-réseau avant de supprimer le sous-réseau.

Impossible de dissocier le réseau VPC partagé

Pour dissocier le réseau VPC partagé dans le projet hôte, suivez les étapes permettant de déprovisionner les VPC partagés et veillez à déconnecter tous les services ou jobs Cloud Run du réseau VPC partagé.

Pour savoir quelles ressources Cloud Run utilisent le réseau VPC partagé, exécutez la commande suivante:

gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID

Remplacez HOST_PROJECT_ID par l'ID du projet hôte de VPC partagé.

Le sous-réseau VPC direct manque d'adresses IP

Si le sous-réseau du réseau VPC partagé manque d'adresses IP, cela est consigné par Cloud Logging. Lorsque cela se produit, Cloud Run ne peut pas démarrer d'autres instances de service ou tâches de job tant que davantage d'adresses IP ne sont pas disponibles.

Afficher les adresses IP allouées

Pour afficher les adresses IP allouées par Cloud Run, accédez à la page Adresses IP dans la console Google Cloud ou exécutez la commande suivante à partir de Google Cloud CLI :

gcloud compute addresses list