As sub-redes de pilha dupla permitem que seus 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 atual, 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 de pilha dupla podem ter latências de inicialização a frio elevadas, limitando a rapidez com que seu 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 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 console do Google Cloud :
Ative a API Compute Engine:
Acesse a página Redes VPC:
Clique em Criar rede VPC se você estiver criando uma 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 ou convertendo uma rede, insira o nome e verifique se o Modo de criação de sub-rede está definido como Personalizado. Em seguida, 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 foi atribuído na 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 para 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 de/48do intervalofd20::/20usado por 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 no modo personalizado para que ela seja compatível com 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 comando
subnets createusando 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 região do Google Cloud 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 trabalhadores 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 Mudar 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 região Google Cloud 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