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
Reveja as seguintes secções de configuração do endereço IP:
Atribuição de endereços IP para obter orientações sobre a atribuição de endereços IP a partir da sua sub-rede.
Estratégias de esgotamento de endereços IP para usar intervalos de endereços IP alternativos.
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 sinalSIGCONT
após o evento. Depois de o contentor receber o sinalSIGCONT
, 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.
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.
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 partilhadacompute.subnetworks.get
no projeto anfitrião ou na sub-rede específicacompute.subnetworks.use
no projeto anfitrião ou na sub-rede específicacompute.addresses.get
no projeto de serviço de VPC partilhadacompute.addresses.list
no projeto de serviço de VPC partilhadacompute.addresses.createInternal
no projeto de serviço de VPC partilhadacompute.addresses.deleteInternal
no projeto de serviço de VPC partilhadacompute.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:
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
Na Google Cloud consola, aceda à página do Cloud Run:
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.
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.
Clique no separador Rede.
Clique em Ligar a uma VPC para tráfego de saída.
Clique em Enviar tráfego diretamente para uma VPC.
Selecione Redes partilhadas comigo.
No campo Rede, selecione a rede de VPC partilhada para a qual quer enviar tráfego.
No campo Sub-rede, selecione a sub-rede a partir da qual o seu serviço recebe endereços IP.
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
.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.
Clique em Criar ou Implementar.
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
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
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.
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.
Adicione o seguinte ao ficheiro
main.tf
:
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
Na Google Cloud consola, aceda à página do Cloud Run:
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.
Clique em Recipiente, variáveis e segredos, ligações, segurança para expandir a página de propriedades da tarefa.
Clique no separador Ligações.
Clique em Ligar a uma VPC para tráfego de saída.
Clique em Enviar tráfego diretamente para uma VPC.
Selecione Redes partilhadas comigo.
No campo Rede, selecione a rede de VPC partilhada para a qual quer enviar tráfego.
No campo Sub-rede, selecione a sub-rede a partir da qual a tarefa recebe endereços IP.
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
.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.
Clique em Criar ou Atualizar.
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
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
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.
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:
Na Google Cloud consola, aceda à página do Cloud Run:
Clique no serviço que quer remover e, de seguida, clique em Editar e implementar nova revisão.
Clique no separador Rede.
Desmarque a opção Estabelecer ligação a uma VPC para tráfego de saída.
Clique em Implementar.
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:
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.
Clique no separador Rede.
Limpe os nomes das etiquetas de rede que já não quer associar ao seu serviço.
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:
Transfira a configuração YAML do serviço:
gcloud run services describe SERVICE_NAME --format export > service.yaml
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.
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:
Transfira a configuração YAML do serviço:
gcloud run services describe SERVICE_NAME --format export > service.yaml
Remova a variável
tags
do conteúdo no ficheiroservice.yaml
, deixando as variáveisnetwork
esubnetwork
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.
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:
Na Google Cloud consola, aceda à página do Cloud Run:
Clique no trabalho que quer remover e, de seguida, clique em Editar e implementar nova revisão.
Clique no separador Configuração.
Desmarque a opção Estabelecer ligação a uma VPC para tráfego de saída.
Clique em Atualizar.
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:
Clique na tarefa que contém as etiquetas de rede que quer remover e, de seguida, clique em Editar e implementar nova revisão.
Clique no separador Ligações.
Limpe os nomes das etiquetas de rede que já não quer associar ao seu trabalho.
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:
Transfira a configuração YAML da tarefa:
gcloud run jobs describe JOB_NAME --format export > job.yaml
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.
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:
Transfira a configuração YAML da tarefa:
gcloud run jobs describe JOB_NAME --format export > job.yaml
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.
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