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 da VPC direta. Pode alterar uma sub-rede apenas IPv4 (única pilha) para uma sub-rede de pilha dupla.
Tipos de sub-redes
As redes VPC suportam os seguintes tipos de sub-redes do Compute Engine:
Sub-redes apenas IPv4 (pilha única), com apenas intervalos de sub-redes IPv4
Sub-redes IPv4 e IPv6 (pilha dupla), com intervalos de sub-redes IPv4 e IPv6
Limitações de pilha dupla
Antes de alterar o tipo de pilha num recurso do Cloud Run existente, considere as seguintes limitações:
O suporte de pilha dupla só está disponível com sub-redes numa rede VPC de modo personalizado. Para ter o tipo de acesso interno disponível para sub-redes de pilha dupla, tem de ativar o intervalo IPv6 interno da rede VPC. Configure ou converta a rede VPC para o modo personalizado.
Em comparação com as sub-redes apenas IPv4, as sub-redes de pilha dupla podem sofrer latências de início a frio elevadas, o que limita a rapidez com que a sua aplicação pode ser dimensionada.
O NAT64 não é suportado.
Antes de começar
Certifique-se de que o agente de serviço do Cloud Run
tem a função de administrador de IP público do Compute (roles/compute.publicIpAdmin)
para usar a sub-rede com IPv6 externo.
Adicione uma sub-rede de pilha dupla a um recurso
As 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:
Consola
Na Google Cloud consola:
Ative a API Compute Engine:
Aceda à página Redes de VPC:
Clique em Criar rede VPC se estiver a criar uma nova rede de modo personalizado. Se estiver a usar uma rede de VPC existente, clique no nome da rede de VPC para mostrar a respetiva página de detalhes da rede de VPC.
Se estiver a criar uma nova rede ou a converter uma existente, introduza o nome e certifique-se de que o Modo de criação de sub-redes está definido como Personalizado. Em seguida, selecione Configurar um intervalo IPv6 interno de ULA para esta rede VPC.
No separador Sub-redes, clique em Adicionar sub-rede. No painel apresentado:
- Indique um Nome.
- Selecione uma região.
- Para o Tipo de pilha de IP, selecione IPv4 e IPv6 (pilha dupla).
- Introduza um intervalo de IPv4. Este é o intervalo IPv4 principal para a sub-rede.
Selecione o tipo de acesso IPv6.
Se a opção Interno não estiver disponível e precisar dela, verifique se foi atribuído um intervalo de IPv6 interno na rede.
Clique em Adicionar.
Implemente um serviço do Cloud Run, execute uma tarefa ou implemente um conjunto de trabalhadores na sub-rede de pilha dupla que criou. À medida que introduz os detalhes dos recursos necessários, selecione o novo intervalo de endereços IPv6 seguindo estes passos:
- Clique em Recipientes, volumes, rede, segurança e selecione o separador Rede.
- Clique em Ligar a uma VPC para tráfego de saída e, de seguida, em Enviar tráfego diretamente para uma VPC.
- Selecione a rede que criou no passo anterior.
- Clique no campo Sub-rede para selecionar o intervalo de endereços IPv6 recém-criado.
O recurso é aprovisionado automaticamente com o tipo de pilha da sub-rede.
gcloud
Para criar uma rede no modo personalizado que suporte sub-redes de pilha dupla, execute o comando
gcloud compute networks create.Para configurar intervalos IPv6 internos em quaisquer sub-redes nesta rede, use a flag
--enable-ula-internal-ipv6. Esta opção atribui um/48prefixo ULA a partir do intervalofd20::/20usado pelo Google Cloud para intervalos de sub-redes 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 suporte 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 createcom as definiçõ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 o seguinte:
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 para a nova sub-rede, na notação CIDR. Para mais informações, consulte os intervalos de sub-redes IPv4.IPV6_ACCESS_TYPE: o tipo de acesso IPv6 para a nova sub-rede,internalouexternal.REGION: a Google Cloud região na qual a nova sub-rede vai ser criada.
Implemente um serviço do Cloud Run, execute uma tarefa ou implemente um conjunto de trabalhadores na sub-rede de pilha dupla que criou. O recurso é aprovisionado automaticamente com o tipo de pilha da sub-rede.
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 da sua rede VPC.
- SUBNET com o nome da sua sub-rede. Pode implementar ou executar vários serviços, tarefas ou conjuntos de trabalhadores na mesma 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.private-ranges-only: envia apenas tráfego para endereços internos através da rede VPC.
- IMAGE com o URL da imagem do contentor de serviços.
Também pode especificar mais configurações, como variáveis de ambiente ou limites de memória.
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.
Altere uma sub-rede de pilha única para pilha dupla
Para adicionar um intervalo de sub-rede IPv6 a uma sub-rede apenas IPv4 existente numa rede VPC de modo personalizado, consulte o artigo Altere o tipo de pilha de uma sub-rede para pilha dupla. Em seguida, implemente o serviço do Cloud Run, execute a tarefa ou implemente o conjunto de trabalhadores na sub-rede de pilha dupla.
Altere uma sub-rede de pilha dupla para pilha única
Para alterar a sub-rede de pilha dupla de um recurso para uma sub-rede de pilha única, consulte o artigo Altere uma sub-rede de pilha dupla apenas para IPv4. Em seguida, implemente o serviço do Cloud Run, execute a tarefa ou implemente o conjunto de trabalhadores na sub-rede de pilha dupla.
Valide a rede e a sub-rede
Para verificar se o seu 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 seguinte mostra a sua rede e sub-rede:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only