Saída de VPC direta com uma rede VPC compartilhada

É possível ativar seu job ou serviço do Cloud Run para que envie tráfego a uma rede VPC compartilhada usando a saída de VPC direta sem precisar de um conector de acesso VPC sem servidor.

Nesta página, descrevemos como configurar as permissões do IAM do Cloud Run para usar a sub-rede da rede VPC compartilhada e, em seguida, colocar o serviço ou job na sub-rede compartilhada.

Antes de começar

Ao usar a saída direta de VPC, verifique se a sub-rede tem pelo menos algumas centenas de endereços IP disponíveis. Se o número total de instâncias em todos os serviços do Cloud Run aumentar além de 100, recomendamos ter pelo menos quatro vezes o número total disponível.

Limitações

As seguintes limitações se aplicam aos serviços e jobs do Cloud Run:

  • O Cloud Run dá suporte à capacidade de processamento de até 1 Gbps por instância individual. Exceder esse valor resulta na limitação do desempenho.
  • Uma cota de uso do Cloud Run limita o número máximo de instâncias que podem ser configuradas para usar a saída da VPC direta. O número máximo é configurado por revisão do Cloud Run ou execução de job. Para aumentar os limites padrão, veja como aumentar as cotas. Verifique sua cota usando o console do Google Cloud.

  • Os serviços e jobs do Cloud Run podem sofrer interrupções na conexão durante eventos de manutenção da infraestrutura de rede. Recomendamos que você use bibliotecas de cliente capazes de processar redefinições de conexão ocasionais.
As seguintes limitações se aplicam apenas aos jobs do Cloud Run, não aos serviços:
  • A saída direta de VPC para jobs do Cloud Run está disponível apenas em pré-lançamento.
  • Para garantir execuções de job adequadas, use a saída de VPC direta apenas para jobs que não exijam mais de oito instâncias simultâneas e reserve um mínimo de 1.024 endereços IP.

Os seguintes itens não são compatíveis com a saída de VPC direta:

  • Os registros de fluxo de VPC não fornecem o nome do serviço ou da revisão do Cloud Run.
  • Os registros de fluxo de VPC não são informados por recursos que não são de VM, como o Cloud Run ou máquinas locais.
  • Geração de registros de regras de firewall
  • Espelhamento de pacotes
  • Network Intelligence Center
  • Tráfego IPv6
  • Proxy seguro da Web
  • Usar tags de rede em regras de firewall de entrada aplicadas ao recurso de destino.
  • Usar identidade do serviço como a conta de serviço de origem nas regras de firewall de entrada aplicadas ao recurso de destino.
  • As regras de firewall não podem usar tags do Resource Manager anexadas a cargas de trabalho do Cloud Run.
  • Os jobs do Cloud Run executados por mais de uma hora podem apresentar falhas na conexão. Eles podem ocorrer durante eventos de manutenção que migram o job de uma máquina para outra. O contêiner recebe um sinal SIGTSTP 10 segundos antes do evento e um sinal SIGCONT após o evento. Depois que o contêiner receber o sinal SIGCONT, tente se conectar novamente.

Configurar permissões do IAM

Antes que o Cloud Run em um projeto de serviço de VPC compartilhada possa acessar uma rede VPC compartilhada, primeiro verifique se o agente de serviço do Cloud Run tem permissões suficientes para usar a sub-rede.

  1. Para acessar a rede VPC compartilhada, conceda permissões suficientes ao agente de serviço do Cloud Run adicionando um dos seguintes papéis:

    • Usuário da rede do Compute (compute.networkUser) no projeto host da VPC compartilhada.

      Por exemplo, execute o seguinte 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"
      

      Substitua:

      • HOST_PROJECT_ID: o ID do seu projeto host da VPC compartilhada;
      • SERVICE_PROJECT_NUMBER: o número do projeto de serviço da VPC compartilhada em que você implanta o serviço ou job do Cloud Run.
    • Leitor da rede do Compute (compute.networkViewer) no projeto host da VPC compartilhada e o papel Usuário da rede do Compute (compute.networkUser) na sub-rede da VPC compartilhada.

      Por exemplo, para conceder o papel "Leitor da rede do Compute" na sub-rede, execute o seguinte 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
      

      Substitua:

      • SUBNET_NAME: o nome da sub-rede em que você quer executar os serviços do Cloud Run;
      • REGION: a região do serviço do Cloud Run, que precisa corresponder à região da sua sub-rede;
      • SERVICE_PROJECT_NUMBER: o número do projeto de serviço da VPC compartilhada em que você implanta o serviço ou job do Cloud Run;
      • HOST_PROJECT_ID: o ID do seu projeto host da VPC compartilhada;
  2. O agente de serviço do Cloud Run requer o papel Agente de serviço do Cloud Run no projeto do Cloud Run. É possível verificar se o papel não foi removido manualmente executando o seguinte comando:

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

    Substitua SERVICE_PROJECT_ID pelo ID do projeto do serviço ou job do Cloud Run.

Para um controle mais granular, verifique se o agente de serviço do Cloud Run tem as seguintes permissões:

  • compute.networks.get no projeto host da VPC compartilhada
  • compute.subnetworks.get no projeto host ou na sub-rede específica
  • compute.subnetworks.use no projeto host ou na sub-rede específica
  • compute.addresses.get no projeto de serviço da VPC compartilhada
  • compute.addresses.list no projeto de serviço da VPC compartilhada
  • compute.addresses.createInternal no projeto de serviço da VPC compartilhada
  • compute.addresses.deleteInternal no projeto de serviço da VPC compartilhada

Alocação de endereço IP

Para colocar o serviço ou o job do Cloud Run em uma rede VPC, especifique uma rede e uma sub-rede. O Cloud Run aloca endereços IP da sub-rede.

Os endereços IP são temporários. Portanto, não crie políticas com base em IPs individuais. Se você precisar criar uma política com base em IPs, como em regras de firewall, use o intervalo de endereços IP de toda a sub-rede.

Para alterar a rede ou sub-rede que o serviço ou job usa, implante uma nova revisão de serviço ou execute uma nova tarefa de job que use os novos valores de rede e sub-rede.

Escalonar verticalmente

Para permitir o escalonamento vertical rápido em caso de aumento do tráfego, o Cloud Run aloca endereços IP antes que eles sejam necessários.

A qualquer momento, provavelmente há mais endereços IP alocados do que o número de instâncias atuais. Para garantir que o Cloud Run consiga endereços IP suficientes, verifique se a sub-rede tem pelo menos algumas centenas de endereços IP disponíveis. Se o número total de instâncias da sub-rede em todos os serviços e jobs do Cloud Run aumentar além de 100, recomendamos ter pelo menos quatro vezes (4 vezes) o número total disponível. Se o Cloud Run não puder alocar mais endereços IP, ele não poderá iniciar mais instâncias de serviço ou tarefas de job até que mais endereços IP fiquem disponíveis. Se o espaço de endereços IP for limitado, consulte Intervalos de IP compatíveis para mais opções. Para aumentar a eficiência da alocação de IP e facilitar o gerenciamento, coloque vários serviços ou jobs na mesma sub-rede.

Reduzir a escala vertical

Mesmo depois que todos os serviços ou jobs são reduzidos a zero, o Cloud Run reserva alguns endereços IP da sub-rede por até 20 minutos caso os serviços ou jobs precisem ser escalonados novamente de forma rápida. Cada instância requer um endereço IP, mas o Cloud Run reserva uma máscara de sub-rede /28 mínima no início. Quando você esgotar as 16 instâncias, o Cloud Run criará uma nova sub-rede.

Para excluir a sub-rede, é preciso primeiro excluir ou reimplantar os serviços ou jobs do Cloud Run para interromper o uso da sub-rede e aguardar de uma a duas horas.

Intervalos de IP compatíveis

O Cloud Run é compatível com os seguintes intervalos IPv4 para a sub-rede:

  • RFC 1918 (recomendado)
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
  • RFC 6598
    • 100.64.0.0/10
  • Classe E (não recomendada com configurações locais)
    • 240.0.0.0/4

Implantar um serviço

A saída de VPC direta permite que seu serviço do Cloud Run envie tráfego a uma rede VPC compartilhada sem um conector de acesso VPC sem servidor. Os custos de rede têm redução da escala a zero assim como o próprio serviço. Também é possível usar tags de rede diretamente em revisões de serviço do Cloud Run para uma segurança de rede mais granular.

É possível configurar a saída de VPC direta com um serviço usando o console do Google Cloud, a CLI do Google Cloud ou o YAML.

Console

  1. Acesse o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando e implantando um serviço que já existe, clique nele e depois em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações do serviço conforme preferir e clique em Contêineres, volumes, redes e segurança para expandir essa página.

  4. Clique na guia Rede.

  5. Clique em Conectar a uma VPC para tráfego de saída.

  6. Clique em Enviar tráfego diretamente para uma VPC.

  7. Selecione Redes compartilhadas comigo.

  8. No campo Rede, selecione a rede VPC compartilhada que receberá o tráfego enviado.

  9. No campo Sub-rede, selecione a sub-rede que enviará os endereços IP ao seu serviço.

  10. Opcional: insira os nomes das tags de rede que você quer associar ao seu serviço (ou serviços). As tags de rede são especificadas no nível da revisão. Cada revisão de serviço pode ter tags de rede diferentes, como network-tag-2.

  11. Em Roteamento de tráfego, selecione uma das seguintes opções:

    • Encaminhar solicitações apenas para IPs privados para a VPC a fim de enviar apenas o tráfego para endereços internos pela rede VPC compartilhada.
    • Rotear todo o tráfego para a VPC a fim de enviar todo o tráfego de saída pela rede VPC compartilhada.
  12. Clique em Criar ou Implantar.

  13. Para verificar se o serviço está na sua rede VPC compartilhada, clique nele e depois na guia Rede. A rede e a sub-rede estão listadas no card da VPC.

Agora, é possível enviar solicitações do seu serviço do Cloud Run para qualquer recurso na rede VPC compartilhada, conforme permitido pelas regras de firewall.

gcloud

Para colocar o serviço na sub-rede compartilhada, especifique os nomes dos recursos totalmente qualificados na rede VPC compartilhada e na sub-rede executando o seguinte 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
  

Substitua:

  • SERVICE_NAME: o nome do seu serviço do Cloud Run;
  • IMAGE_URL: o URL da imagem do serviço;
  • HOST_PROJECT_ID: o ID do seu projeto da VPC compartilhada;
  • VPC_NETWORK: o nome da sua rede VPC compartilhada;
  • REGION: a região do serviço do Cloud Run, que precisa corresponder à região da sua sub-rede;
  • SUBNET_NAME: o nome da sub-rede.
  • Opcional: NETWORK_TAG_NAMES pelos nomes separados por vírgula das tags de rede que você quer associar a um serviço. Para serviços, as tags de rede são especificadas no nível da revisão. Cada revisão de serviço pode ter tags de rede diferentes, como network-tag-2;
  • EGRESS_SETTING por um valor de configuração de saída:
    • all-traffic: envia todo o tráfego de saída pela rede VPC compartilhada.
    • private-ranges-only: envia o tráfego apenas para endereços internos pela rede VPC compartilhada.
  • MAX: o número máximo de instâncias a serem usadas para a rede VPC compartilhada. O número máximo de instâncias permitidas para serviços é 100.

Para mais detalhes e argumentos opcionais, consulte a página de referência da gcloud.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Atualize os seguintes atributos:

    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

    Substitua:

    • SERVICE_NAME pelo nome do seu serviço do Cloud Run. Os nomes dos serviços precisam ter 49 caracteres ou menos e ser exclusivos para cada região e projeto;
    • REGION pela região do serviço do Cloud Run, que precisa corresponder à região da sua sub-rede;
    • NETWORK pelo nome da sua rede VPC compartilhada;
    • SUBNET_NAME pelo nome da sub-rede.
    • Opcional: NETWORK_TAG_NAMES pelos nomes das tags de rede que você quer associar a um serviço. Para serviços, as tags de rede são especificadas no nível da revisão. Cada revisão de serviço pode ter tags de rede diferentes, como network-tag-2;
    • EGRESS_SETTING por um valor de configuração de saída:
      • all-traffic: envia todo o tráfego de saída pela rede VPC compartilhada.
      • private-ranges-only: envia o tráfego apenas para endereços internos pela rede VPC compartilhada.
    • IMAGE pelo URL da imagem de contêiner do serviço.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.

  1. Adicione a instrução a seguir ao seu arquivo 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"
    
      template {
        containers {
          image = "us-docker.pkg.dev/cloudrun/container/hello"
        }
        vpc_access {
          network_interfaces {
            network    = "default"
            subnetwork = "default"
            tags       = ["tag1", "tag2", "tag3"]
          }
        }
      }
    }
    

Como opção, torne seu serviço público se você quiser permitir o acesso não autenticado ao serviço.

Criar um job

A saída de VPC direta permite que seu job do Cloud Run envie tráfego para uma rede VPC compartilhada sem um conector de acesso VPC sem servidor.

É possível configurar a saída de VPC direta com um job usando o console do Google Cloud, a CLI do Google Cloud ou o YAML.

Console

  1. Acesse o Cloud Run

  2. Se você estiver configurando um novo job, clique na guia Jobs e preencha a página inicial de configurações de job conforme preferir. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões, segurança para expandir a página de properties do job.

  4. Clique na guia Conexões.

  5. Clique em Conectar a uma VPC para tráfego de saída.

  6. Clique em Enviar tráfego diretamente para uma VPC.

  7. Selecione Redes compartilhadas comigo.

  8. No campo Rede, selecione a rede VPC compartilhada que receberá o tráfego enviado.

  9. No campo Sub-rede, selecione a sub-rede que enviará os endereços IP ao seu job.

  10. Opcional: insira os nomes das tags de rede que você quer associar a um job. Para jobs, as tags de rede são especificadas no nível da execução. Cada execução de job pode ter tags de rede diferentes, como network-tag-2.

  11. Em Roteamento de tráfego, selecione uma das seguintes opções:

    • Encaminhar solicitações apenas para IPs privados para a VPC a fim de enviar apenas o tráfego para endereços internos pela rede VPC compartilhada.
    • Rotear todo o tráfego para a VPC a fim de enviar todo o tráfego de saída pela rede VPC compartilhada.
  12. Clique em Criar ou Atualizar.

  13. Para verificar se o job está na sua rede VPC compartilhada, clique nele e depois na guia Configuração. A rede e a sub-rede estão listadas no card da VPC.

Agora, é possível executar seu job do Cloud Run e enviar solicitações dele para qualquer recurso na rede VPC compartilhada, conforme permitido pelas regras de firewall.

gcloud

Para colocar o job na sub-rede compartilhada, especifique os nomes dos recursos totalmente qualificados na rede VPC compartilhada e na sub-rede executando o seguinte 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 \
  

Substitua:

  • JOB_NAME: o nome do seu job do Cloud Run;
  • IMAGE_URL: o URL da imagem do job;
  • HOST_PROJECT_ID: o ID do seu projeto host da VPC compartilhada;
  • VPC_NETWORK: o nome da sua rede VPC compartilhada;
  • REGION: a região do job do Cloud Run, que precisa corresponder à região da sub-rede;
  • SUBNET_NAME: o nome da sub-rede.
  • Opcional: NETWORK_TAG_NAMES pelos nomes separados por vírgula das tags de rede que você quer associar a um job. Cada execução de job pode ter tags de rede diferentes, como network-tag-2.
  • EGRESS_SETTING por um valor de configuração de saída:
    • all-traffic: envia todo o tráfego de saída pela rede VPC compartilhada.
    • private-ranges-only: envia o tráfego apenas para endereços internos pela rede VPC compartilhada.

Para mais detalhes e argumentos opcionais, consulte a página de referência da gcloud.

YAML

  1. Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Atualize os seguintes atributos:

    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

    Substitua:

    • JOB_NAME pelo nome do seu job do Cloud Run. Os nomes dos jobs precisam ter 49 caracteres ou menos e ser exclusivos para cada região e projeto;
    • REGION pela região do job do Cloud Run, que precisa corresponder à região da sua sub-rede;
    • NETWORK pelo nome da sua rede VPC compartilhada;
    • SUBNET pelo nome da sub-rede.
    • Opcional: NETWORK_TAG_NAMES pelos nomes das tags de rede que você quer associar a um job. Para jobs, as tags de rede são especificadas no nível da execução. Cada execução de job pode ter tags de rede diferentes, como network-tag-2;
    • EGRESS_SETTING por um valor de configuração de saída:
      • all-traffic: envia todo o tráfego de saída pela rede VPC compartilhada.
      • private-ranges-only: envia o tráfego apenas para endereços internos pela rede VPC compartilhada.
    • IMAGE pelo URL da imagem de contêiner do job.
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run jobs replace job.yaml

Desconectar um serviço

Console

  • Para remover seu serviço da rede VPC compartilhada:

    1. Acesse o Cloud Run

    2. Clique no serviço que você quer remover e depois em Editar e implantar nova revisão.

    3. Clique na guia Rede.

    4. Desmarque Conectar a uma VPC para tráfego de saída.

    5. Clique em Implantar.

    6. Para verificar se o serviço não está mais na sua rede VPC compartilhada, clique na guia Rede. A rede e a sub-rede não estão mais listadas no card da VPC.

  • Para remover apenas as tags de rede, mantendo o serviço conectado à rede VPC compartilhada:

    1. Clique no serviço que contém as tags de rede que você quer remover e depois em Editar e implantar nova revisão.

    2. Clique na guia Rede.

    3. Desmarque os nomes das tags de rede que você não quer mais associar ao seu serviço.

    4. Clique em Implantar.

gcloud

  • Para remover seu serviço da rede VPC compartilhada, execute o seguinte comando:

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
    
  • Para remover apenas as tags de rede, mantendo o serviço conectado à rede VPC compartilhada, execute o seguinte comando:

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

    Substitua:

    • SERVICE_NAME: o nome do seu serviço do Cloud Run;
    • REGION: a região do seu serviço do Cloud Run.

YAML

  • Para remover seu serviço da rede VPC compartilhada:

    1. Faça o download da configuração YAML do serviço:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Remova o seguinte conteúdo do seu arquivo service.yaml:

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

      Onde

      • NETWORK: o nome da sua rede VPC compartilhada;
      • SUBNET: o nome da sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das tags de rede associadas a um serviço, se houver.
    3. Atualize o serviço usando o seguinte comando:

      gcloud run services replace service.yaml
  • Para remover apenas as tags de rede, mantendo o serviço conectado à rede VPC compartilhada:

    1. Faça o download da configuração YAML do serviço:

      gcloud run services describe SERVICE_NAME --format export > service.yaml
    2. Remova a variável tags do conteúdo no arquivo service.yaml, deixando as variáveis network e subnetwork como estão, conforme mostrado no exemplo a seguir:

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

      Substitua:

      • NETWORK: o nome da sua rede VPC compartilhada;
      • SUBNET: o nome da sub-rede.
    3. Atualize o serviço usando o seguinte comando:

      gcloud run services replace service.yaml

Desconectar um job

Console

  • Para remover seu job da rede VPC compartilhada:

    1. Acesse o Cloud Run

    2. Clique no job que você quer remover e depois em Editar e implantar nova revisão.

    3. Clique na guia Configuração.

    4. Desmarque Conectar a uma VPC para tráfego de saída.

    5. Clique em Atualizar.

    6. Para verificar se o job não está mais na sua rede VPC compartilhada, clique na guia Configuração. A rede e a sub-rede não estão mais listadas no card da VPC.

  • Para remover apenas as tags de rede, mantendo o job conectado à rede VPC compartilhada:

    1. Clique no job que contém as tags de rede que você quer remover e depois em Editar e implantar nova revisão.

    2. Clique na guia Conexões.

    3. Desmarque os nomes das tags de rede que você não quer mais associar ao seu job.

    4. Clique em Atualizar.

gcloud

  • Para remover seu job da rede VPC compartilhada, execute o seguinte comando:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Para remover apenas as tags de rede, mantendo o job conectado à rede VPC compartilhada, execute o seguinte comando:

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

    Substitua:

    • JOB_NAME: o nome do seu job do Cloud Run;
    • REGION: a região do seu job do Cloud Run.

YAML

  • Para remover seu job da rede VPC compartilhada:

    1. Faça o download da configuração YAML do job:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Remova o seguinte conteúdo do seu arquivo job.yaml:

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

      Onde

      • NETWORK: o nome da sua rede VPC compartilhada;
      • SUBNET: o nome da sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das tags de rede associadas a um job, se houver.
    3. Atualize o job usando o seguinte comando:

      gcloud run jobs replace job.yaml
  • Para remover apenas as tags de rede, mantendo o job conectado à rede VPC compartilhada:

    1. Faça o download da configuração YAML do job:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. Remova o seguinte conteúdo do seu arquivo job.yaml:

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

      Onde

      • NETWORK: o nome da sua rede VPC compartilhada;
      • SUBNET: o nome da sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das tags de rede associadas a um job, se houver.
    3. Atualize o job usando o seguinte comando:

      gcloud run jobs replace job.yaml

Solução de problemas

Não consigo excluir uma sub-rede

Para excluir uma sub-rede, você precisa primeiro excluir todos os recursos que a utilizam. Se o Cloud Run estiver usando uma sub-rede, desconecte o Cloud Run da rede VPC compartilhada ou mova-o para uma sub-rede diferente antes de excluir a sub-rede.

Não consigo remover a rede VPC compartilhada

Para desanexar a rede VPC compartilhada no projeto host, siga as etapas para desprovisionar a VPC compartilhada e desconecte todos os serviços ou jobs do Cloud Run da rede VPC compartilhada.

Para ver quais recursos do Cloud Run estão usando a rede VPC compartilhada, execute o seguinte comando:

gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID

Substitua HOST_PROJECT_ID pelo ID do seu projeto host da VPC compartilhada.

A sub-rede da VPC direta fica sem endereços IP

Se a sub-rede da rede VPC compartilhada ficar sem endereços IP, isso será registrado pelo Cloud Logging. Quando isso ocorre, o Cloud Run não pode iniciar novas instâncias de serviço ou tarefas de job antes de haver mais endereços IP disponíveis.

Ver endereços IP alocados

Para ver os endereços IP que o Cloud Run alocou, acesse a página de endereços IP no console do Google Cloud ou execute o seguinte comando na CLI do Google Cloud:

gcloud compute addresses list