As sub-redes de pilha dupla permitem que os recursos do Cloud Run enviem tráfego IPv4 e IPv6 para uma rede VPC com saída de VPC direta. É possível mudar uma sub-rede somente IPv4 (pilha única) para uma sub-rede de pilha dupla.
Tipos de sub-rede
As redes VPC são compatíveis com os seguintes tipos de sub-rede do Compute Engine:
Sub-redes somente IPv4 (pilha única), com apenas intervalos de sub-rede IPv4
Sub-redes IPv4 e IPv6 (pilha dupla), com intervalos de sub-rede IPv4 e IPv6
Limitações de pilha dupla
Antes de mudar o tipo de pilha em um recurso do Cloud Run, considere as seguintes limitações:
O suporte a pilha dupla só está disponível com sub-redes em uma rede VPC de modo personalizado. Para que o tipo de acesso interno esteja disponível para sub-redes de pilha dupla, o intervalo IPv6 interno da rede VPC precisa estar ativado. Configure ou converta a rede VPC para o modo personalizado.
Em comparação com sub-redes somente IPv4, as sub-redes de pilha dupla podem apresentar latências de inicialização a frio elevadas, limitando a rapidez com que o aplicativo pode escalonar verticalmente.
NAT64 não é compatível.
Antes de começar
Verifique se o agente de serviço do Cloud Run
tem o papel de administrador de IP público do Compute (roles/compute.publicIpAdmin)
para usar a sub-rede com IPv6 externo.
Adicionar uma sub-rede de pilha dupla a um recurso
Sub-redes de pilha dupla têm intervalos de endereços IPv4 e IPv6.
Para adicionar uma sub-rede de pilha dupla a um recurso do Cloud Run, faça o seguinte:
Console
No Google Cloud console do:
Ative a API Compute Engine:
Acesse a página Redes VPC:
Clique em Criar rede VPC se estiver criando uma nova rede de modo personalizado. Se você estiver usando uma rede VPC, clique no nome dela para mostrar a página Detalhes da rede VPC.
Se você estiver criando uma nova rede ou convertendo uma atual, insira o nome e verifique se o Modo de criação de sub-rede está definido como Personalizado e selecione Configurar um intervalo IPv6 interno ULA para esta rede VPC.
Na guia Sub-redes, clique em Adicionar sub-rede. No painel que aparecerá, faça o seguinte:
- Forneça um Nome.
- Selecione uma Região.
- Em Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Digite um intervalo de IPv4. Esse é o intervalo IPv4 principal da sub-rede.
Selecione o Tipo de acesso IPv6.
Se a opção Interno não estiver disponível e você precisar dela, verifique se um intervalo IPv6 interno está atribuído à rede.
Clique em Adicionar.
Implante um serviço do Cloud Run, execute um job ou implante um pool de workers na sub-rede de pilha dupla que você criou. Ao inserir os detalhes do recurso necessário, selecione o novo intervalo de endereços IPv6 seguindo estas etapas:
- Clique em Contêineres, volumes, rede, segurança e selecione a guia Rede.
- Clique em Conectar a uma VPC para tráfego de saída e em Enviar tráfego diretamente a uma VPC.
- Selecione a rede que você criou na etapa anterior.
- Clique no campo Sub-rede para selecionar o intervalo de endereços IPv6 recém-criado.
O recurso é provisionado automaticamente com o tipo de pilha da sub-rede.
gcloud
Para criar uma rede de modo personalizado que ofereça suporte a sub-redes de pilha dupla, execute o comando
gcloud compute networks create.Para configurar intervalos IPv6 internos em qualquer sub-rede nessa rede, use a sinalização
--enable-ula-internal-ipv6. Essa opção atribui um prefixo ULA/48de do intervalofd20::/20usado pelo Google Cloud para intervalos de sub-rede IPv6 internos.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Substitua
NETWORKpelo nome da rede VPC que vai conter a nova sub-rede.Para converter ou atualizar uma rede de modo personalizado para que ela ofereça suporte a sub-redes de pilha dupla, execute o seguinte comando:
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Substitua
NETWORKpelo nome da rede VPC que vai conter a nova sub-rede.Para criar uma sub-rede de pilha dupla com um intervalo IPv6, execute o
subnets createcomando usando as configurações de pilha dupla:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Substitua:
SUBNET: um nome para a nova sub-rede.NETWORK: o nome da rede VPC que vai conter a nova sub-rede.PRIMARY_IPv4_RANGE: o intervalo IPv4 principal da nova sub-rede, em notação CIDR. Saiba mais em Intervalos de sub-rede IPv4.IPV6_ACCESS_TYPE: o tipo de acesso IPv6 da nova sub-rede,internalouexternal.REGION: a Google Cloud região do em que a nova sub-rede será criada.
Implante um serviço do Cloud Run, execute um job ou implante um pool de workers na sub-rede de pilha dupla que você criou. O recurso é provisionado automaticamente com o tipo de pilha da sub-rede.
YAML
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
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;
- SUBNET pelo nome da sub-rede. É possível implantar ou executar vários serviços, jobs ou pools de workers na mesma 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.private-ranges-only: envia o tráfego apenas para endereços internos pela rede VPC.
- IMAGE pelo URL da imagem de contêiner do serviço.
Também é possível definir outras configurações, como variáveis de ambiente ou limites de memória.
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.
Adicione a instrução a seguir ao seu arquivo
main.tf:
Como opção, torne seu serviço público se você quiser permitir o acesso não autenticado ao serviço.
Mudar uma sub-rede de pilha única para pilha dupla
Para adicionar um intervalo de sub-rede IPv6 a uma sub-rede somente IPv4 em uma rede VPC de modo personalizado, consulte Alterar o tipo de pilha de uma sub-rede para pilha dupla. Em seguida, implante o serviço do Cloud Run, execute o job, ou implante o pool de workers na sub-rede de pilha dupla.
Mudar uma sub-rede de pilha dupla para pilha única
Para mudar a sub-rede de pilha dupla de um recurso para uma sub-rede de pilha única, consulte Mudar uma sub-rede de pilha dupla para somente IPv4. Em seguida, implante o serviço do Cloud Run, execute o job, ou implante o pool de workers na sub-rede de pilha dupla.
Verificar a rede e a sub-rede
Para verificar se o recurso está na rede VPC, execute o seguinte comando:
gcloud run services describe SERVICE_NAME --region=REGION
Substitua REGION pela Google Cloud região em que a
nova sub-rede foi criada.
O exemplo de saída a seguir mostra sua rede e sub-rede:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only