Saída da VPC direta com uma rede VPC partilhada

Pode ativar o seu serviço ou tarefa do Cloud Run para enviar tráfego para uma rede VPC partilhada através da saída da VPC direta sem necessidade de um conetor do Acesso a VPC sem servidor.

Esta página descreve como configurar as autorizações da IAM do Cloud Run para usar a sub-rede da rede VPC partilhada e, em seguida, colocar o seu serviço ou tarefa na sub-rede partilhada.

Antes de começar

Limitações

As seguintes limitações aplicam-se a serviços, tarefas e pools de trabalhadores do Cloud Run:

  • Pode ocorrer um atraso de um minuto ou mais no estabelecimento da ligação no arranque da instância quando usar a saída da VPC direta. Recomendamos que configure uma sondagem de arranque HTTP que testa uma ligação a um destino de saída usado pela aplicação antes de a aplicação aceitar pedidos. Este teste de conetividade de saída deve implementar novas tentativas ou a sondagem de arranque deve ser definida com configurações de período e limite adequadas para atuar como uma nova tentativa.
  • O Cloud Run suporta um débito de até 1 Gbps por instância individual. Exceder este valor resulta na limitação do desempenho.
  • Uma quota de utilização do Cloud Run limita o número máximo de instâncias que pode configurar para usar a saída da VPC direta. O número máximo é configurado por revisão ou execução de tarefas do Cloud Run. Para aumentar os limites predefinidos, veja como aumentar as quotas.

  • Os serviços, as tarefas e os conjuntos de trabalhadores do Cloud Run podem sofrer interrupções de ligação durante eventos de manutenção da infraestrutura de rede. Recomendamos que use bibliotecas de cliente que possam processar reposições de ligação ocasionais.
  • O suporte de saída de VPC direta para tráfego IPv6 interno está disponível apenas na pré-visualização.
  • O NAT privado está disponível apenas na pré-visualização.

Os seguintes itens não são suportados pela saída direta da VPC:

  • Os registos de fluxo da VPC não fornecem o nome do serviço ou da revisão do Cloud Run.
  • Os registos de fluxo de VPC não são comunicados a partir de recursos que não sejam de MV, como o Cloud Run ou máquinas no local.
  • Espelhamento de pacotes
  • Network Intelligence Center, incluindo testes de conetividade
  • Tráfego IPv6 externo através de uma rede de VPC
  • Etiquetas de rede ou identidade do serviço nas regras da firewall de entrada.
  • As regras de firewall não podem usar etiquetas do Resource Manager anexadas a cargas de trabalho do Cloud Run.
  • As tarefas do Cloud Run que são executadas durante mais de 1 hora podem sofrer interrupções de ligação. Estas podem ocorrer durante eventos de manutenção que migram a tarefa de uma máquina para outra. O contentor recebe um sinal SIGTSTP 10 segundos antes do evento e um sinal SIGCONT após o evento. Depois de o contentor receber o sinal SIGCONT, tente estabelecer a ligação novamente.

Configure as autorizações do IAM

Antes de o Cloud Run num projeto de serviço de VPC partilhada poder aceder a uma rede de VPC partilhada, tem de se certificar de que o agente de serviço do Cloud Run tem autorizações suficientes para usar a sub-rede.

  1. Para aceder à rede VPC partilhada, conceda autorizações suficientes ao agente de serviço do Cloud Run adicionando uma das seguintes funções:

    • Utilizador da rede de computação (compute.networkUser) no projeto anfitrião da VPC partilhada.

      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 o seguinte:

      • HOST_PROJECT_ID: o ID do projeto anfitrião da VPC partilhada.
      • SERVICE_PROJECT_NUMBER: o número do projeto de serviço da VPC partilhada onde implementa o seu serviço ou tarefa do Cloud Run.
    • Visualizador de rede de computação (compute.networkViewer) no projeto anfitrião da VPC partilhada e a função Utilizador de rede de computação (compute.networkUser) na sub-rede da VPC partilhada.

      Por exemplo, para conceder a função de utilizador da rede de computação 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 o seguinte:

      • SUBNET_NAME: o nome completo do recurso da sub-rede que quer usar para executar os seus serviços do Cloud Run.
      • REGION: a região do seu serviço do Cloud Run, que tem de corresponder à região da sua sub-rede.
      • SERVICE_PROJECT_NUMBER: o número do projeto de serviço da VPC partilhada onde implementa o seu serviço ou tarefa do Cloud Run.
      • HOST_PROJECT_ID: o ID do projeto anfitrião da VPC partilhada.
  2. O agente do serviço do Cloud Run requer a função Agente do serviço do Cloud Run no seu projeto do Cloud Run. Pode verificar se a função não foi removida 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 seu serviço ou tarefa do Cloud Run.

Para um controlo mais detalhado, pode garantir que o agente do serviço do Cloud Run tem as seguintes autorizações:

  • compute.networks.get no projeto anfitrião de VPC partilhada
  • compute.subnetworks.get no projeto anfitrião ou na sub-rede específica
  • compute.subnetworks.use no projeto anfitrião ou na sub-rede específica
  • compute.addresses.get no projeto de serviço de VPC partilhada
  • compute.addresses.list no projeto de serviço de VPC partilhada
  • compute.addresses.createInternal no projeto de serviço de VPC partilhada
  • compute.addresses.deleteInternal no projeto de serviço de VPC partilhada
  • compute.regionOperations.get no projeto de serviço de VPC partilhada

Atribuição de endereços IP

Para colocar o seu serviço, tarefa ou conjunto de trabalhadores do Cloud Run numa rede VPC, especifique uma rede VPC ou uma sub-rede, ou ambas. Se especificar apenas uma rede, a sub-rede usa o mesmo nome que a rede. O Cloud Run atribui endereços IP da sua sub-rede.

Os endereços IP são efémeros, por isso, não crie políticas com base em IPs individuais. Se precisar de criar uma política baseada em IPs, como nas regras de firewall, tem de usar o intervalo de endereços IP de toda a sub-rede.

Para alterar a rede ou a sub-rede que o seu serviço, trabalho ou conjunto de trabalhadores usa, implemente uma nova revisão ou execute uma nova tarefa de trabalho que use os novos valores de rede e sub-rede.

Aumente e diminua a escala

Para um aumento mais rápido durante um pico de tráfego, o Cloud Run reserva endereços IP em blocos de 16 (máscara de sub-rede 28) de cada vez. Veja que endereços IP o Cloud Run atribuiu. Para garantir que tem endereços IPv4 suficientes disponíveis para utilização no Cloud Run, o intervalo de endereços IPv4 da sua sub-rede tem de ser /26 ou superior.

Para eficiência da atribuição de IPs e facilidade de gestão, coloque vários recursos na mesma sub-rede. Se o seu espaço de endereços IPv4 for limitado, consulte os intervalos IPv4 suportados para ver mais opções.

Para eliminar a sub-rede, primeiro tem de eliminar ou voltar a implementar os seus serviços, tarefas ou conjuntos de trabalhadores do Cloud Run para deixar de usar a sub-rede e, em seguida, aguardar 1 a 2 horas.

Consumo de endereços IP para serviços e pools de trabalhadores

No estado estável, o Cloud Run usa 2 vezes (2X) mais endereços IP do que o número de instâncias. Quando uma revisão é reduzida, o Cloud Run retém os respetivos endereços IP durante um máximo de 20 minutos. No total, reserve, pelo menos, o dobro do número de endereços IP, mais uma margem para ter em conta as atualizações de revisão.

Por exemplo, se atualizar as revisões para que revision 1 seja reduzido de 100 instâncias para zero, enquanto revision 2 é aumentado de zero para 100, o Cloud Run retém os endereços IP revision 1 durante um máximo de 20 minutos após a redução da escala. Durante o período de retenção de 20 minutos, tem de reservar, pelo menos, 400 endereços IP ((100 + 100) * 2).

Consumo de IP para empregos

Para tarefas do Cloud Run, cada tarefa consome 1 endereço IP durante a execução, mais 7 minutos após a conclusão. Certifique-se de que a sua sub-rede é suficientemente grande para acomodar todas as execuções de tarefas de trabalhos simultâneas, com uma sub-rede de reserva mínima /26 obrigatória.

Por exemplo:

  • Uma tarefa única que é executada diariamente e que termina sempre, pelo menos, 7 minutos antes da execução seguinte consome um máximo de 1 endereço IP na sub-rede.
  • Uma tarefa de 10 tarefas executada a cada 10 minutos, com cada tarefa a ser executada durante 15 minutos, consome 1 endereço IP durante 22 minutos por tarefa (3 execuções consomem endereços IP ao mesmo tempo), conforme mostrado no exemplo seguinte. Por conseguinte, a tarefa consome 30 endereços IP em estado estável.
  • Uma tarefa única que demora 1 minuto a ser executada e é executada 100 vezes por minuto requer aproximadamente 800 endereços IP, consoante a hora exata de execução.

Intervalos de IPv4 suportados

O Cloud Run suporta os seguintes intervalos IPv4 para a sua sub-rede:

  • 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

Implemente um serviço

A saída direta da VPC permite que o seu serviço do Cloud Run envie tráfego para uma rede de VPC partilhada sem um conetor do Acesso a VPC sem servidor. Os custos de rede são reduzidos a zero, tal como o próprio serviço. Também pode adicionar etiquetas de rede diretamente às revisões do serviço do Cloud Run para uma segurança de rede mais detalhada, como a aplicação de regras de firewall da VPC.

Pode configurar a saída da VPC direta com um serviço através da Google Cloud consola, da CLI do Google Cloud ou de YAML.

Consola

  1. Na Google Cloud consola, aceda à página do Cloud Run:

    Aceda ao Cloud Run

  2. Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar e implementar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.

  3. Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço conforme necessário e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.

  4. Clique no separador Rede.

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

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

  7. Selecione Redes partilhadas comigo.

  8. No campo Rede, selecione a rede de VPC partilhada para a qual quer enviar tráfego.

  9. No campo Sub-rede, selecione a sub-rede a partir da qual o seu serviço recebe endereços IP.

  10. Opcional: introduza os nomes das etiquetas de rede que quer associar ao seu serviço ou serviços. As etiquetas de rede são especificadas ao nível da revisão. Cada revisão do serviço pode ter etiquetas de rede diferentes, como network-tag-2.

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

    • Encaminhe apenas pedidos para IPs privados para a VPC para enviar apenas tráfego para endereços internos através da rede da VPC partilhada.
    • Encaminhe todo o tráfego para a VPC para enviar todo o tráfego de saída através da rede VPC partilhada.
  12. Clique em Criar ou Implementar.

  13. Para verificar se o seu serviço está na rede de VPC partilhada, clique no serviço e, de seguida, no separador Rede. A rede e a sub-rede estão listadas no cartão VPC.

Já pode enviar pedidos do seu serviço do Cloud Run para qualquer recurso na rede de VPC partilhada, conforme permitido pelas regras da firewall.

gcloud

Para colocar o seu serviço na sub-rede partilhada, especifique os nomes de recursos totalmente qualificados para a rede e a sub-rede da VPC partilhada 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 o seguinte:

  • 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 de VPC partilhada.
  • VPC_NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
  • REGION: a região do seu serviço do Cloud Run, que tem de corresponder à região da sua sub-rede.
  • SUBNET_NAME: o nome do recurso totalmente qualificado da sua sub-rede.
  • Opcional: NETWORK_TAG_NAMES com os nomes separados por vírgulas das etiquetas de rede que quer associar a um serviço. Para serviços, as etiquetas de rede são especificadas ao nível da revisão. Cada revisão do serviço pode ter etiquetas de rede diferentes, como network-tag-2.
  • EGRESS_SETTING com um valor de definição de saída:
    • all-traffic: envia todo o tráfego de saída através da rede VPC partilhada.
    • private-ranges-only: envia apenas tráfego para endereços internos através da rede VPC partilhada.
  • MAX: o número máximo de instâncias a usar para a rede VPC partilhada. O número máximo de instâncias permitidas para serviços é 100.

Para ver mais detalhes e argumentos opcionais, consulte a referência gcloud.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    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

    Substituir:

    • SERVICE_NAME com o nome do seu serviço do Cloud Run. Os nomes dos serviços têm de ter 49 carateres ou menos e têm de ser únicos por região e projeto.
    • REGION com a região do seu serviço do Cloud Run, que tem de corresponder à região da sua sub-rede.
    • NETWORK com o nome do recurso totalmente qualificado da sua rede VPC partilhada.
    • SUBNET_NAME com o nome do recurso totalmente qualificado da sua sub-rede.
    • Opcional: NETWORK_TAG_NAMES com os nomes das etiquetas de rede que quer associar a um serviço. Para serviços, as etiquetas de rede são especificadas ao nível da revisão. Cada revisão do serviço pode ter etiquetas de rede diferentes, como network-tag-2.
    • EGRESS_SETTING com um valor de definição de saída:
      • all-traffic: envia todo o tráfego de saída através da rede VPC partilhada.
      • private-ranges-only: envia apenas tráfego para endereços internos através da rede VPC partilhada.
    • IMAGE com o URL da imagem do contentor de serviços.
  3. Crie ou atualize o serviço com o seguinte comando:

    gcloud run services replace service.yaml

Terraform

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

  1. Adicione o seguinte ao ficheiro 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"]
          }
        }
      }
    }
    

Opcionalmente, torne o seu serviço público se quiser permitir o acesso não autenticado ao serviço.

Crie um trabalho

A saída da VPC direta permite que a sua tarefa do Cloud Run envie tráfego para uma rede de VPC partilhada sem um conetor do Acesso a VPC sem servidor. Também pode adicionar etiquetas de rede diretamente em tarefas do Cloud Run para uma segurança de rede mais detalhada, como a aplicação de regras da firewall da VPC.

Pode configurar a saída da VPC direta com uma tarefa através da Google Cloud consola, da CLI do Google Cloud ou do YAML.

Consola

  1. Na Google Cloud consola, aceda à página do Cloud Run:

    Aceda ao Cloud Run

  2. Se estiver a configurar uma nova tarefa, clique em Implementar contentor e selecione Tarefa para preencher o formulário inicial Criar tarefa conforme necessário. Se estiver a configurar uma tarefa existente, clique no separador Tarefas, selecione uma tarefa e, de seguida, clique em Editar.

  3. Clique em Recipiente, variáveis e segredos, ligações, segurança para expandir a página de propriedades da tarefa.

  4. Clique no separador Ligações.

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

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

  7. Selecione Redes partilhadas comigo.

  8. No campo Rede, selecione a rede de VPC partilhada para a qual quer enviar tráfego.

  9. No campo Sub-rede, selecione a sub-rede a partir da qual a tarefa recebe endereços IP.

  10. Opcional: introduza os nomes das etiquetas de rede que quer associar a uma tarefa. Para trabalhos, as etiquetas de rede são especificadas ao nível da execução. Cada execução de tarefa pode ter etiquetas de rede diferentes, como network-tag-2.

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

    • Encaminhe apenas pedidos para IPs privados para a VPC para enviar apenas tráfego para endereços internos através da rede da VPC partilhada.
    • Encaminhe todo o tráfego para a VPC para enviar todo o tráfego de saída através da rede VPC partilhada.
  12. Clique em Criar ou Atualizar.

  13. Para verificar se a tarefa está na sua rede de VPC partilhada, clique na tarefa e, de seguida, no separador Configuração. A rede e a sub-rede estão listadas no cartão VPC.

Já pode executar a sua tarefa do Cloud Run e enviar pedidos da tarefa para qualquer recurso na rede da VPC partilhada, conforme permitido pelas suas regras de firewall.

gcloud

Para colocar a sua tarefa na sub-rede partilhada, especifique os nomes dos recursos totalmente qualificados para a rede VPC partilhada e a 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 o seguinte:

  • JOB_NAME: o nome da sua tarefa do Cloud Run.
  • IMAGE_URL: o URL da imagem da oferta de emprego.
  • HOST_PROJECT_ID: o ID do projeto anfitrião da VPC partilhada.
  • VPC_NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
  • REGION: a região da sua tarefa do Cloud Run, que tem de corresponder à região da sub-rede.
  • SUBNET_NAME: o nome completo do recurso do nome da sub-rede.
  • Opcional: NETWORK_TAG_NAMES com os nomes separados por vírgulas das etiquetas de rede que quer associar a uma tarefa. Cada execução de tarefa pode ter etiquetas de rede diferentes, como network-tag-2.
  • EGRESS_SETTING com um valor de definição de saída:
    • all-traffic: envia todo o tráfego de saída através da rede VPC partilhada.
    • private-ranges-only: envia apenas tráfego para endereços internos através da rede VPC partilhada.

Para ver mais detalhes e argumentos opcionais, consulte a referência gcloud.

YAML

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    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

    Substituir:

    • JOB_NAME com o nome da tarefa do Cloud Run. Os nomes das tarefas têm de ter 49 carateres ou menos e têm de ser exclusivos por região e projeto.
    • REGION com a região da sua tarefa do Cloud Run, que tem de corresponder à região da sua sub-rede.
    • NETWORK com o nome do recurso totalmente qualificado da sua rede VPC partilhada.
    • SUBNET com o nome do recurso totalmente qualificado da sua sub-rede.
    • Opcional: NETWORK_TAG_NAMES com os nomes das etiquetas de rede que quer associar a uma tarefa. Para trabalhos, as etiquetas de rede são especificadas ao nível da execução. Cada execução de tarefa pode ter etiquetas de rede diferentes, como network-tag-2.
    • EGRESS_SETTING com um valor de definição de saída:
      • all-traffic: envia todo o tráfego de saída através da rede VPC partilhada.
      • private-ranges-only: envia apenas tráfego para endereços internos através da rede VPC partilhada.
    • IMAGE com o URL da imagem do contentor do trabalho.
  3. Crie ou atualize a tarefa através do seguinte comando:

    gcloud run jobs replace job.yaml

Configure uma sub-rede de pilha dupla

Para adicionar uma sub-rede de pilha dupla com um intervalo IPv6 interno num serviço ou numa tarefa do Cloud Run, consulte o artigo Configure uma sub-rede de pilha dupla.

Desassocie um serviço

Consola

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

    1. Na Google Cloud consola, aceda à página do Cloud Run:

      Aceda ao Cloud Run

    2. Clique no serviço que quer remover e, de seguida, clique em Editar e implementar nova revisão.

    3. Clique no separador Rede.

    4. Desmarque a opção Estabelecer ligação a uma VPC para tráfego de saída.

    5. Clique em Implementar.

    6. Para verificar se o seu serviço já não está na rede de VPC partilhada, clique no separador Redes. A rede e a sub-rede deixaram de ser apresentadas no cartão VPC.

  • Para remover apenas as etiquetas de rede e manter o serviço ligado à rede de VPC partilhada:

    1. Clique no serviço que contém as etiquetas de rede que quer remover e, de seguida, clique em Editar e implementar nova revisão.

    2. Clique no separador Rede.

    3. Limpe os nomes das etiquetas de rede que já não quer associar ao seu serviço.

    4. Clique em Implementar.

gcloud

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

    gcloud run services update SERVICE_NAME --region=REGION \
    --clear-network
  • Para remover apenas as etiquetas de rede e manter o serviço ligado à rede VPC partilhada, execute o seguinte comando:

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

    Substitua o seguinte:

    • 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 o seu serviço da rede VPC partilhada:

    1. Transfira a configuração YAML do serviço:

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

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

      Onde

      • NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
      • SUBNET: o nome do recurso totalmente qualificado da sua sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das etiquetas de rede se as tiver associado a um serviço.
    3. Atualize o serviço com o seguinte comando:

      gcloud run services replace service.yaml
  • Para remover apenas as etiquetas de rede e manter o serviço ligado à rede de VPC partilhada:

    1. Transfira a 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 ficheiro service.yaml, deixando as variáveis network e subnetwork no lugar, conforme mostrado no exemplo seguinte:

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

      Substitua o seguinte:

      • NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
      • SUBNET: o nome do recurso totalmente qualificado da sua sub-rede.
    3. Atualize o serviço com o seguinte comando:

      gcloud run services replace service.yaml

Desassocie uma tarefa

Consola

  • Para remover o seu trabalho da rede de VPC partilhada:

    1. Na Google Cloud consola, aceda à página do Cloud Run:

      Aceda ao Cloud Run

    2. Clique no trabalho que quer remover e, de seguida, clique em Editar e implementar nova revisão.

    3. Clique no separador Configuração.

    4. Desmarque a opção Estabelecer ligação a uma VPC para tráfego de saída.

    5. Clique em Atualizar.

    6. Para verificar se o seu trabalho já não está na rede de VPC partilhada, clique no separador Configuração. A rede e a sub-rede já não são apresentadas no cartão VPC.

  • Para remover apenas as etiquetas de rede e manter o trabalho ligado à rede VPC partilhada:

    1. Clique na tarefa que contém as etiquetas de rede que quer remover e, de seguida, clique em Editar e implementar nova revisão.

    2. Clique no separador Ligações.

    3. Limpe os nomes das etiquetas de rede que já não quer associar ao seu trabalho.

    4. Clique em Atualizar.

gcloud

  • Para remover o seu trabalho da rede VPC partilhada, execute o seguinte comando:

    gcloud run jobs update JOB_NAME --region=REGION \
      --clear-network
      
  • Para remover apenas as etiquetas de rede e manter a tarefa associada à rede VPC partilhada, execute o seguinte comando:

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

    Substitua o seguinte:

    • JOB_NAME: o nome da sua tarefa do Cloud Run.
    • REGION: a região da sua tarefa do Cloud Run.

YAML

  • Para remover o seu trabalho da rede de VPC partilhada:

    1. Transfira a configuração YAML da tarefa:

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

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

      Onde

      • NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
      • SUBNET: o nome do recurso totalmente qualificado da sua sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das etiquetas de rede se as tiver associado a uma tarefa.
    3. Atualize a tarefa com o seguinte comando:

      gcloud run jobs replace job.yaml
  • Para remover apenas as etiquetas de rede e manter o trabalho ligado à rede VPC partilhada:

    1. Transfira a configuração YAML da tarefa:

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

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

      Onde

      • NETWORK: o nome completo do recurso da sua rede de VPC partilhada.
      • SUBNET: o nome do recurso totalmente qualificado da sua sub-rede.
      • Opcional: NETWORK_TAG_NAMES: os nomes das etiquetas de rede se as tiver associado a uma tarefa.
    3. Atualize a tarefa com o seguinte comando:

      gcloud run jobs replace job.yaml

Resolução de problemas

Não é possível eliminar a sub-rede

Para eliminar uma sub-rede, tem de eliminar primeiro todos os recursos que a usam. Se o Cloud Run estiver a usar uma sub-rede, tem de desligar o Cloud Run da rede de VPC partilhada ou movê-lo para uma sub-rede diferente antes de eliminar a sub-rede.

Não é possível desanexar a rede de VPC partilhada

Para desanexar a rede VPC partilhada no projeto anfitrião, siga os passos para desaprovisionar a VPC partilhada e certifique-se de que desliga todos os serviços do Cloud Run ou tarefas da rede VPC partilhada.

Para ver que recursos do Cloud Run estão a usar a rede de VPC partilhada, execute o seguinte comando:

gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID

Substitua HOST_PROJECT_ID pelo ID do projeto anfitrião da VPC partilhada.

A sub-rede de saída da VPC direta fica sem endereços IPv4

Ocorre o seguinte erro quando tenta implementar:

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 a sub-rede da rede VPC ficar sem endereços IPv4, é registada pelo Cloud Logging. Quando isto ocorre, o Cloud Run não pode iniciar mais instâncias de serviço nem tarefas de trabalho até ficarem disponíveis mais endereços IPv4.

Para resolver este problema, siga as estratégias de esgotamento de endereços IP.

Veja os endereços IP atribuídos

Para ver os endereços IP que o Cloud Run atribuiu, aceda à página Endereços IP na Google Cloud consola ou execute o seguinte comando na CLI do Google Cloud:

gcloud compute addresses list