Uscita VPC diretta con una rete VPC condiviso

Puoi abilitare il servizio o il job Cloud Run per inviare traffico a una rete VPC condivisa utilizzando il traffico in uscita VPC diretto senza richiedere un connettore di accesso VPC serverless.

Questa pagina descrive come configurare le autorizzazioni IAM di Cloud Run per utilizzare la subnet della rete VPC condiviso e poi inserire il servizio o il job nella subnet condivisa.

Prima di iniziare

Limitazioni

I seguenti limiti si applicano a servizi e job Cloud Run :

  • Potresti riscontrare ritardi di un minuto o più nella creazione della connessione all'avvio dell'istanza quando utilizzi l'uscita VPC diretto. Ti consigliamo di configurare un probe di avvio HTTP che testa una connessione a una destinazione in uscita utilizzata dall'applicazione prima che l'applicazione accetti le richieste. Questo test di connettività in uscita deve implementare i tentativi o la probe di avvio deve essere impostata con configurazioni di periodo e soglia appropriate per fungere da tentativo.
  • I job Cloud Run che vengono eseguiti per più di un'ora potrebbero subire interruzioni della connessione. Questi possono verificarsi durante eventi di manutenzione che migrano il job da una macchina all'altra. Il container riceve un segnale SIGTSTP 10 secondi prima dell'evento e un segnale SIGCONT dopo l'evento. Dopo che il contenitore riceve il segnale SIGCONT, riprova a effettuare la connessione.
  • Con Cloud NAT, potresti riscontrare ritardi di avvio a freddo di 30 secondi o più all'avvio dell'istanza quando utilizzi l'uscita VPC diretto. Per migliorare le prestazioni di avvio, ti consigliamo di utilizzare i connettori di accesso VPC serverless con Cloud NAT.
  • Cloud Run supporta una velocità effettiva fino a 1 Gbps per singola istanza. Il superamento di questo importo comporta la limitazione delle prestazioni.
  • Una quota di utilizzo di Cloud Run limita il numero massimo di istanze che puoi configurare per utilizzare il traffico in uscita VPC diretto. Il numero massimo viene configurato per revisione o esecuzione del job di Cloud Run. Per aumentare i limiti predefiniti, consulta Come aumentare le quote.

  • I servizi e i job Cloud Run i servizi, i job e i pool di worker potrebbero subire interruzioni della connessione durante gli eventi di manutenzione dell'infrastruttura di rete. Ti consigliamo di utilizzare librerie client in grado di gestire i ripristini occasionali della connessione.
  • Network Intelligence Center supporta solo Connectivity Tests e Flow Analyzer per gli intervalli di subnet IPv4 e IPv6.
  • I servizi e i job Cloud Run I pool di worker supportano sia l'uscita VPC diretto che l'ingresso VPC diretto.
  • Anche se i pool di worker supportano l'accesso VPC diretto, non puoi utilizzare i tag di rete per definire la destinazione di una regola firewall in entrata.
  • L'accesso in entrata ai pool di worker è supportato solo tramite VPC diretto, non tramite connettori di accesso VPC serverless. I connettori non supportano l'ingresso.

I seguenti elementi non sono supportati dal traffico VPC diretto in uscita:

  • I log di flusso VPC non forniscono il nome della revisione Cloud Run.
  • Logging delle regole firewall VPC
  • Mirroring pacchetto
  • Tag di rete o identità di servizio nelle regole firewall in entrata.
  • Le regole del firewall non possono utilizzare i tag Resource Manager collegati ai carichi di lavoro Cloud Run.
  • Ispezione del traffico in uscita con Cloud Next Generation Firewall Enterprise, ad esempio servizio di rilevamento e prevenzione delle intrusioni, servizio di filtro URL e ispezione TLS.

Configurare le autorizzazioni IAM

Prima che Cloud Run in un progetto di servizio VPC condiviso possa accedere a una rete VPC condivisa, devi prima assicurarti che il service agent Cloud Run disponga di autorizzazioni sufficienti per utilizzare la subnet.

  1. Per accedere alla rete VPC condiviso, concedi autorizzazioni sufficienti al service agent Cloud Run aggiungendo uno dei seguenti ruoli:

    • Compute Network User (roles/compute.networkUser) nel progetto host VPC condiviso. Le subnet con IPv6 esterno richiedono anche il ruolo Compute Public IP Admin (roles/compute.publicIpAdmin).

      Ad esempio, per concedere il ruolo Utente di rete Compute, esegui questo comando:

      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"

      Sostituisci quanto segue:

      • HOST_PROJECT_ID: l'ID del progetto host VPC condiviso.
      • SERVICE_PROJECT_NUMBER: il numero del progetto di servizio VPC condiviso in cui esegui il deployment del servizio o del job Cloud Run.
    • Compute Network Viewer (compute.networkViewer) nel progetto host VPC condiviso e il ruolo Compute Network User (compute.networkUser) nella subnet VPC condivisa. Le subnet con IPv6 esterno richiedono anche il ruolo Compute Public IP Admin (roles/compute.publicIpAdmin).

      Ad esempio, per concedere il ruolo Utente di rete Compute sulla subnet, esegui il seguente comando:

      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

      Sostituisci quanto segue:

      • SUBNET_NAME: il nome completo della risorsa della subnet in cui vuoi eseguire i servizi Cloud Run.
      • REGION: la regione per il tuo servizio Cloud Run, che deve corrispondere alla regione della tua subnet.
      • SERVICE_PROJECT_NUMBER: il numero del progetto di servizio VPC condiviso in cui esegui il deployment del servizio o del job Cloud Run.
      • HOST_PROJECT_ID: l'ID del progetto host VPC condiviso.
  2. Il service agent Cloud Run richiede il ruolo Service agent Cloud Run nel tuo progetto Cloud Run. Puoi verificare che il ruolo non sia stato rimosso manualmente eseguendo questo comando:

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

    Sostituisci SERVICE_PROJECT_ID con l'ID progetto del tuo servizio o job Cloud Run.

Per un controllo più granulare, puoi assicurarti che il service agent Cloud Run disponga delle seguenti autorizzazioni:

  • compute.networks.get sul progetto host VPC condiviso
  • compute.subnetworks.get sul progetto host o sulla subnet specifica
  • compute.subnetworks.use sul progetto host o sulla subnet specifica
  • compute.addresses.get sul progetto di servizio del VPC condiviso
  • compute.addresses.list sul progetto di servizio del VPC condiviso
  • compute.addresses.create nel progetto di servizio VPC condiviso (obbligatorio solo per le subnet a doppio stack con IPv6 esterno)
  • compute.addresses.delete nel progetto di servizio VPC condiviso (obbligatorio solo per le subnet a doppio stack con IPv6 esterno)
  • compute.addresses.createInternal sul progetto di servizio del VPC condiviso
  • compute.addresses.deleteInternal sul progetto di servizio del VPC condiviso
  • compute.regionOperations.get sul progetto di servizio del VPC condiviso

Allocazione degli indirizzi IP

Per inserire il servizio o il job Cloud Run in una rete VPC, specifica una rete VPC o una subnet oppure entrambe. Se specifichi solo una rete, la subnet utilizza lo stesso nome della rete. Cloud Run alloca indirizzi IP dalla tua subnet.

Gli indirizzi IP sono temporanei, quindi non creare policy basate su singoli IP. Se devi creare una policy basata sugli IP, ad esempio nelle regole firewall, devi utilizzare l'intervallo di indirizzi IP dell'intera subnet.

Per modificare la rete o la subnet utilizzata dal tuo servizio , dal tuo servizio, dal tuo job o dal tuo pool di worker , esegui il deployment di una nuova revisione o esegui una nuova attività di job che utilizza i nuovi valori di rete e subnet.

Scale up e fare lo scale down

Per fare lo scale up più rapidamente durante un picco di traffico, Cloud Run riserva gli indirizzi IP in blocchi di 16 (subnet mask 28) alla volta. Scopri quali indirizzi IP sono stati allocati da Cloud Run. Per assicurarti di avere a disposizione un numero sufficiente di indirizzi IPv4 da utilizzare in Cloud Run, l'intervallo di indirizzi IPv4 della subnet deve essere /26 o superiore.

Per un'allocazione IP efficiente e una gestione semplice, posiziona più risorse nella stessa subnet. Se lo spazio di indirizzi IPv4 è limitato, consulta Intervalli IPv4 supportati per altre opzioni.

Per eliminare la subnet, devi prima eliminare o rifare il deployment dei servizi o dei job, dei job o dei pool di worker per interrompere l'utilizzo della subnet, quindi attendere 1-2 ore.

Consumo di indirizzi IP per servizi e pool di worker

In stato stazionario, Cloud Run utilizza un numero di indirizzi IP doppio (2X) rispetto al numero di istanze. Quando una revisione viene ridimensionata, Cloud Run ne conserva gli indirizzi IP per un massimo di 20 minuti. In totale, riserva almeno il doppio del numero di indirizzi IP, più un buffer per tenere conto degli aggiornamenti delle revisioni.

Ad esempio, se esegui l'upgrade delle revisioni in modo che revision 1 venga scalato da 100 istanze a zero, mentre revision 2 viene scalato da zero a 100, Cloud Run conserva gli indirizzi IP revision 1 fino a 20 minuti dopo lo scale down. Durante la finestra di conservazione di 20 minuti, devi riservare almeno 400 indirizzi IP ((100 + 100) * 2).

Consumo di IP per i job

Per i job Cloud Run, ogni attività utilizza un indirizzo IP per la durata dell'esecuzione più 7 minuti dopo il completamento. Assicurati che la subnet sia abbastanza grande da ospitare tutte le esecuzioni simultanee delle attività del job, con una subnet di prenotazione minima /26 richiesta.

Ad esempio:

  • Un job a singola attività che viene eseguito quotidianamente e viene sempre completato almeno 7 minuti prima dell'esecuzione successiva consuma un massimo di 1 indirizzo IP sulla subnet.
  • Un job di 10 attività eseguito ogni 10 minuti, con ogni attività eseguita per 15 minuti, consuma 1 indirizzo IP per 22 minuti per attività (3 esecuzioni consumano indirizzi IP contemporaneamente), come mostrato nell'esempio seguente. Pertanto, il job utilizza 30 indirizzi IP in stato stazionario.
  • Un job a singola attività che richiede 1 minuto per l'esecuzione e viene eseguito 100 volte al minuto richiede circa 800 indirizzi IP, a seconda dell'ora esatta di esecuzione.

Intervalli IPv4 supportati

Cloud Run supporta i seguenti intervalli IPv4 per la tua subnet:

  • RFC 1918
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Classe E
    • 240.0.0.0/4

Esegui il deployment di un servizio

Il traffico in uscita VPC diretto consente al servizio Cloud Run di inviare traffico a una rete VPC condiviso senza un connettore di accesso VPC serverless. I costi di rete vengono scalati a zero proprio come il servizio stesso. Puoi anche aggiungere tag di rete direttamente alle revisioni del servizio Cloud Run per una sicurezza di rete più granulare, ad esempio applicando regole firewall VPC.

Puoi configurare l'uscita VPC diretta con un servizio utilizzando la consoleGoogle Cloud , Google Cloud CLI o YAML.

Console

  1. Nella console Google Cloud , vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Seleziona Servizi dal menu di navigazione di Cloud Run e fai clic su Esegui il deployment del container per configurare un nuovo servizio. Se stai configurando ed eseguendo il deployment di un servizio esistente, fai clic sul servizio, quindi su Modifica ed esegui il deployment della nuova revisione.

  3. Se stai configurando un nuovo servizio, compila la pagina delle impostazioni iniziali del servizio come necessario, poi fai clic su Contenitori, networking, sicurezza per espandere la pagina di configurazione del servizio.

  4. Fai clic sulla scheda Networking.

  5. Fai clic su Connettiti a un VPC per il traffico in uscita.

  6. Fai clic su Invia il traffico direttamente a un VPC.

  7. Seleziona Reti condivise con me.

  8. Nel campo Rete, seleziona la rete VPC condiviso a cui vuoi inviare il traffico.

  9. Nel campo Subnet, seleziona la subnet da cui il servizio riceve gli indirizzi IP.

  10. (Facoltativo) Inserisci i nomi dei tag di rete che vuoi associare al tuo servizio o ai tuoi servizi. I tag di rete vengono specificati a livello di revisione. Ogni revisione del servizio può avere tag di rete diversi, ad esempio network-tag-2.

  11. Per Routing del traffico, seleziona una delle seguenti opzioni:

    • Instrada solo le richieste a IP privati al VPC per inviare solo traffico agli indirizzi interni tramite la reteVPC condivisoa.
    • Instrada tutto il traffico al VPC per inviare tutto il traffico in uscita attraverso la rete VPC condiviso.
  12. Fai clic su Crea o Esegui il deployment.

  13. Per verificare che il servizio si trovi nella rete VPC condiviso, fai clic sul servizio, quindi sulla scheda Networking. La rete e la subnet sono elencate nella scheda VPC.

Ora puoi inviare richieste dal tuo servizio Cloud Run a qualsiasi risorsa sulla rete VPC condiviso, come consentito dalle regole firewall.

gcloud

Per inserire il servizio nella subnet condivisa, specifica i nomi delle risorse completi per la reteVPC condivisoa e la subnet eseguendo il seguente comando:

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
  

Sostituisci quanto segue:

  • SERVICE_NAME: il nome del servizio Cloud Run.
  • IMAGE_URL: l'URL dell'immagine del servizio.
  • HOST_PROJECT_ID: l'ID del tuo progetto VPC condiviso.
  • VPC_NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
  • REGION: la regione per il tuo servizio Cloud Run, che deve corrispondere alla regione della tua subnet.
  • SUBNET_NAME: il nome completo della risorsa della subnet.
  • (Facoltativo) NETWORK_TAG_NAMES con i nomi separati da virgole dei tag di rete che vuoi associare a un servizio. Per i servizi, i tag di rete vengono specificati a livello di revisione. Ogni revisione del servizio può avere tag di rete diversi, ad esempio network-tag-2.
  • EGRESS_SETTING con un valore di impostazione del traffico in uscita:
    • all-traffic: invia tutto il traffico in uscita tramite la rete VPC condiviso.
    • private-ranges-only: invia solo il traffico agli indirizzi interni tramite la rete VPC condiviso.
  • MAX: il numero massimo di istanze da utilizzare per la rete VPC condiviso. Il numero massimo di istanze consentite per i servizi è 100.

Per maggiori dettagli e argomenti facoltativi, consulta la documentazione di riferimento di gcloud.

YAML

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Aggiorna i seguenti attributi:

    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

    Sostituisci:

    • SERVICE_NAME con il nome del tuo servizio Cloud Run. I nomi dei servizi devono contenere al massimo 49 caratteri e devono essere univoci per regione e progetto.
    • REGION con la regione del tuo servizio Cloud Run, che deve corrispondere alla regione della tua subnet.
    • NETWORK con il nome completo della risorsa della tua reteVPC condivisoa.
    • SUBNET_NAME con il nome risorsa completo della tua subnet.
    • (Facoltativo) NETWORK_TAG_NAMES con i nomi dei tag di rete che vuoi associare a un servizio. Per i servizi, i tag di rete vengono specificati a livello di revisione. Ogni revisione del servizio può avere tag di rete diversi, ad esempio network-tag-2.
    • EGRESS_SETTING con un valore di impostazione del traffico in uscita:
      • all-traffic: invia tutto il traffico in uscita tramite la rete VPC condiviso.
      • private-ranges-only: invia solo il traffico agli indirizzi interni tramite la rete VPC condiviso.
    • IMAGE con l'URL dell'immagine container del servizio.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:

    gcloud run services replace service.yaml

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

  1. Aggiungi quanto segue al tuo file 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"]
          }
        }
      }
    }
    

(Facoltativo) Rendi pubblico il servizio se vuoi consentire l'accesso non autenticato al servizio.

Crea un job

Il traffico in uscita VPC diretto consente al job Cloud Run di inviare traffico a una rete VPC condiviso senza un connettore di accesso VPC serverless. Puoi anche aggiungere tag di rete direttamente ai job Cloud Run per una sicurezza di rete più granulare, ad esempio applicando regole firewall VPC.

Puoi configurare l'uscita VPC diretta con un job utilizzando la consoleGoogle Cloud , Google Cloud CLI o YAML.

Console

  1. Nella console Google Cloud , vai alla pagina Job di Cloud Run:

    Vai a Cloud Run

  2. Se stai configurando un nuovo job, fai clic su Deploy container per compilare il modulo iniziale Crea job in base alle tue esigenze. Se stai configurando un job esistente, fai clic sulla scheda Job, seleziona un job, quindi fai clic su Modifica.

  3. Fai clic su Container, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Connessioni.

  5. Fai clic su Connettiti a un VPC per il traffico in uscita.

  6. Fai clic su Invia il traffico direttamente a un VPC.

  7. Seleziona Reti condivise con me.

  8. Nel campo Rete, seleziona la rete VPC condiviso a cui vuoi inviare il traffico.

  9. Nel campo Subnet, seleziona la subnet da cui il job riceve gli indirizzi IP.

  10. (Facoltativo) Inserisci i nomi dei tag di rete che vuoi associare a un job. Per i job, i tag di rete vengono specificati a livello di esecuzione. Ogni esecuzione del job può avere tag di rete diversi, ad esempio network-tag-2.

  11. Per Routing del traffico, seleziona una delle seguenti opzioni:

    • Instrada solo le richieste a IP privati al VPC per inviare solo traffico agli indirizzi interni tramite la reteVPC condivisoa.
    • Instrada tutto il traffico al VPC per inviare tutto il traffico in uscita attraverso la rete VPC condiviso.
  12. Fai clic su Crea o Aggiorna.

  13. Per verificare che il job si trovi nella rete VPC condiviso, fai clic sul job e poi sulla scheda Configurazione. La rete e la subnet sono elencate nella scheda VPC.

Ora puoi eseguire il job Cloud Run e inviare richieste dal job a qualsiasi risorsa sulla rete VPC condiviso, come consentito dalle regole firewall.

gcloud

Per inserire il job nella subnet condivisa, specifica i nomi delle risorse completi per la reteVPC condivisoa e la subnet eseguendo il seguente comando:

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 \
  

Sostituisci quanto segue:

  • JOB_NAME: il nome del job Cloud Run.
  • IMAGE_URL: l'URL dell'immagine del job.
  • HOST_PROJECT_ID: l'ID del progetto host VPC condiviso.
  • VPC_NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
  • REGION: la regione per il job Cloud Run, che deve corrispondere alla regione della subnet.
  • SUBNET_NAME: il nome completo della risorsa della tua subnet.
  • (Facoltativo) NETWORK_TAG_NAMES con i nomi separati da virgole dei tag di rete che vuoi associare a un job. Ogni esecuzione del job può avere tag di rete diversi, ad esempio network-tag-2.
  • EGRESS_SETTING con un valore di impostazione del traffico in uscita:
    • all-traffic: invia tutto il traffico in uscita tramite la rete VPC condiviso.
    • private-ranges-only: invia solo il traffico agli indirizzi interni tramite la rete VPC condiviso.

Per maggiori dettagli e argomenti facoltativi, consulta la documentazione di riferimento di gcloud.

YAML

  1. Se stai creando un nuovo job, salta questo passaggio. Se stai aggiornando un job esistente, scarica la relativa configurazione YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aggiorna i seguenti attributi:

    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

    Sostituisci:

    • JOB_NAME con il nome del tuo job Cloud Run. I nomi dei job devono contenere al massimo 49 caratteri e devono essere univoci per regione e progetto.
    • REGION con la regione del job Cloud Run, che deve corrispondere alla regione della subnet.
    • NETWORK con il nome completo della risorsa della tua reteVPC condivisoa.
    • SUBNET con il nome risorsa completo della subnet.
    • (Facoltativo) NETWORK_TAG_NAMES con i nomi dei tag di rete che vuoi associare a un job. Per i job, i tag di rete vengono specificati a livello di esecuzione. Ogni esecuzione del job può avere tag di rete diversi, ad esempio network-tag-2.
    • EGRESS_SETTING con un valore di impostazione del traffico in uscita:
      • all-traffic: invia tutto il traffico in uscita tramite la rete VPC condiviso.
      • private-ranges-only: invia solo il traffico agli indirizzi interni tramite la rete VPC condiviso.
    • IMAGE con l'URL dell'immagine container del job.
  3. Crea o aggiorna il job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

Configura una subnet a doppio stack

Per aggiungere una subnet a doppio stack con un intervallo IPv6 a una risorsa Cloud Run, consulta Configura una subnet a doppio stack.

Disconnettere un servizio

Console

  • Per rimuovere il servizio dalla rete VPC condiviso:

    1. Nella console Google Cloud , vai alla pagina Job di Cloud Run:

      Vai a Cloud Run

    2. Fai clic sul servizio che vuoi rimuovere, poi fai clic su Modifica ed esegui il deployment di una nuova revisione.

    3. Fai clic sulla scheda Networking.

    4. Deseleziona Connettiti a un VPC per il traffico in uscita.

    5. Fai clic su Esegui il deployment.

    6. Per verificare che il servizio non sia più nella rete VPC condiviso, fai clic sulla scheda Networking. La rete e la subnet non sono più elencate nella scheda VPC.

  • Per rimuovere solo i tag di rete mantenendo il servizio connesso alla rete VPC condiviso:

    1. Fai clic sul servizio che contiene i tag di rete da rimuovere, poi fai clic su Modifica e implementa nuova revisione.

    2. Fai clic sulla scheda Networking.

    3. Cancella i nomi dei tag di rete che non vuoi più associare al tuo servizio.

    4. Fai clic su Esegui il deployment.

gcloud

  • Per rimuovere il servizio dalla rete VPC condiviso, esegui questo comando:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • Per rimuovere solo i tag di rete mantenendo il servizio connesso alla rete VPC condiviso, esegui questo comando:

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

    Sostituisci quanto segue:

    • SERVICE_NAME: il nome del servizio Cloud Run.
    • REGION: la regione per il tuo servizio Cloud Run.

YAML

  • Per rimuovere il servizio dalla rete VPC condiviso:

    1. Scarica la configurazione YAML del servizio:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Rimuovi i seguenti contenuti dal file service.yaml:

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

      Dove

      • NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
      • SUBNET: il nome completo della risorsa della subnet.
      • (Facoltativo) NETWORK_TAG_NAMES: i nomi dei tag di rete se li hai associati a un servizio.
    3. Aggiorna il servizio utilizzando il seguente comando:

      gcloud run services replace service.yaml
  • Per rimuovere solo i tag di rete mantenendo il servizio connesso alla rete VPC condiviso:

    1. Scarica la configurazione YAML del servizio:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Rimuovi la variabile tags dai contenuti del file service.yaml, lasciando le variabili network e subnetwork, come mostrato nell'esempio seguente:

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

      Sostituisci quanto segue:

      • NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
      • SUBNET: il nome completo della risorsa della subnet.
    3. Aggiorna il servizio utilizzando il seguente comando:

      gcloud run services replace service.yaml

Scollegare un job

Console

  • Per rimuovere il tuo progetto dalla rete VPC condiviso:

    1. Nella console Google Cloud , vai alla pagina Job di Cloud Run:

      Vai a Cloud Run

    2. Fai clic sul job che vuoi rimuovere, poi su Modifica ed esegui il deployment di una nuova revisione.

    3. Fai clic sulla scheda Configuration (Configurazione).

    4. Deseleziona Connettiti a un VPC per il traffico in uscita.

    5. Fai clic su Aggiorna.

    6. Per verificare che il job non si trovi più nella rete VPC condiviso, fai clic sulla scheda Configurazione. La rete e la subnet non sono più elencate nella scheda VPC.

  • Per rimuovere solo i tag di rete mantenendo il job connesso alla rete VPC condiviso:

    1. Fai clic sul job contenente i tag di rete da rimuovere, poi fai clic su Modifica e implementa nuova revisione.

    2. Fai clic sulla scheda Connessioni.

    3. Cancella i nomi dei tag di rete che non vuoi più associare al tuo job.

    4. Fai clic su Aggiorna.

gcloud

  • Per rimuovere il job dalla rete VPC condiviso, esegui questo comando:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Per rimuovere solo i tag di rete mantenendo il job connesso alla rete VPC condiviso, esegui questo comando:

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

    Sostituisci quanto segue:

    • JOB_NAME: il nome del job Cloud Run.
    • REGION: la regione per il job Cloud Run.

YAML

  • Per rimuovere il tuo progetto dalla rete VPC condiviso:

    1. Scarica la configurazione YAML del job:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Rimuovi i seguenti contenuti dal file job.yaml:

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

      Dove

      • NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
      • SUBNET: il nome completo della risorsa della subnet.
      • (Facoltativo) NETWORK_TAG_NAMES: i nomi dei tag di rete se li avevi associati a un lavoro.
    3. Aggiorna il job utilizzando il seguente comando:

      gcloud run jobs replace job.yaml
  • Per rimuovere solo i tag di rete mantenendo il job connesso alla rete VPC condiviso:

    1. Scarica la configurazione YAML del job:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Rimuovi i seguenti contenuti dal file job.yaml:

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

      Dove

      • NETWORK: il nome completo della risorsa della tua rete VPC condiviso.
      • SUBNET: il nome completo della risorsa della subnet.
      • (Facoltativo) NETWORK_TAG_NAMES: i nomi dei tag di rete se li avevi associati a un lavoro.
    3. Aggiorna il job utilizzando il seguente comando:

      gcloud run jobs replace job.yaml

Risoluzione dei problemi

Impossibile eliminare la subnet

Per eliminare una subnet, devi prima eliminare tutte le risorse che la utilizzano. Se Cloud Run utilizza una subnet, devi disconnettere Cloud Run dalla rete VPC condiviso o spostarlo in una subnet diversa prima di eliminare la subnet.

Impossibile scollegare la rete VPC condiviso

Per scollegare la rete VPC condivisa nel progetto host, segui i passaggi per deprovisioning del VPC condiviso e assicurati di disconnettere tutti i servizi o i job Cloud Run dalla rete VPC condivisa.

Per visualizzare le risorse Cloud Run che utilizzano la rete VPC condiviso, esegui questo comando:

gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID

Sostituisci HOST_PROJECT_ID con l'ID del tuo progetto host VPC condiviso.

La subnet VPC diretto in uscita esaurisce gli indirizzi IPv4

Quando provi a eseguire il deployment, si verifica il seguente errore:

Instance failed to start because of insufficient free IP addresses in the
subnetwork SUBNET_ID when attempting to create an address in the
subnetwork. Please consider moving to a subnetwork with more available IP
addresses.

Se la subnet della rete VPC esaurisce gli indirizzi IPv4, viene registrata da Cloud Logging. Quando ciò si verifica, Cloud Run non può avviare altre istanze di servizio o attività di job finché non saranno disponibili altri indirizzi IPv4.

Per risolvere il problema, segui le strategie di esaurimento degli indirizzi IP.

Visualizzare gli indirizzi IP allocati

Per vedere quali indirizzi IP sono stati allocati da Cloud Run, vai alla pagina Indirizzi IP nella console Google Cloud o esegui il seguente comando da Google Cloud CLI:

gcloud compute addresses list