Las subredes de pila dual permiten que tus recursos de Cloud Run envíen tráfico IPv4 e IPv6 a una red de VPC con salida de VPC directa. Puedes cambiar una subred IPv4 (de pila única) por una subred de pila dual.
Tipos de subredes
Las redes de VPC admiten los siguientes tipos de subredes de Compute Engine:
Subredes solo IPv4 (de pila única) con solo intervalos de subred IPv4
Subredes IPv4 e IPv6 (de doble pila), con intervalos de subredes IPv4 e IPv6
Limitaciones de la pila dual
Antes de cambiar el tipo de pila de un recurso de Cloud Run, ten en cuenta las siguientes limitaciones:
La compatibilidad con el doble pila solo está disponible en subredes de una red de VPC en modo personalizado. Para que el tipo de acceso interno esté disponible en las subredes de pila dual, debe habilitarse el intervalo IPv6 interno de la red VPC. Configura o convierte la red de VPC al modo personalizado.
En comparación con las subredes solo IPv4, las subredes de doble pila pueden experimentar latencias de arranque en frío elevadas, lo que limita la rapidez con la que se puede escalar tu aplicación.
No se admite NAT64.
Antes de empezar
Asegúrate de que el agente de servicio de Cloud Run
tenga el rol Administrador de IPs públicas de Compute (roles/compute.publicIpAdmin)
para usar la subred con IPv6 externa.
Añadir una subred de doble pila a un recurso
Las subredes de doble pila tienen intervalos de direcciones IPv4 e IPv6.
Para añadir una subred de doble pila a un recurso de Cloud Run, haz lo siguiente:
Consola
En la Google Cloud consola:
Habilita la API Compute Engine:
Ve a la página Redes de VPC:
Haz clic en Crear red de VPC si vas a crear una red en modo personalizado. Si utilizas una red de VPC, haz clic en su nombre para ver la página Detalles de la red de VPC.
Si vas a crear una red o convertir una que ya tengas, introduce el nombre y asegúrate de que el modo de creación de subredes esté definido como Personalizado. A continuación, selecciona Configurar un intervalo de IPv6 interno ULA para esta red de VPC.
En la pestaña Subredes, haz clic en Añadir subred. En el panel que aparece, haz lo siguiente:
- Asígnele un nombre.
- Selecciona una región.
- En Tipo de pila de IP, selecciona IPv4 e IPv6 (pila dual).
- Introduce un intervalo de IPv4. Este es el intervalo IPv4 principal de la subred.
Selecciona el tipo de acceso IPv6.
Si la opción Interna no está disponible y la necesitas, comprueba que se haya asignado un intervalo IPv6 interno en la red.
Haz clic en Añadir.
Despliega un servicio de Cloud Run, ejecuta un trabajo o despliega un grupo de trabajadores en la subred de pila dual que has creado. A medida que introduzcas los detalles del recurso necesario, selecciona el nuevo intervalo de direcciones IPv6 siguiendo estos pasos:
- Haz clic en Contenedores, volúmenes, redes y seguridad y selecciona la pestaña Redes.
- Haga clic en Conectarse a una VPC para el tráfico saliente y, a continuación, en Enviar tráfico directamente a una VPC.
- Seleccione la red que ha creado en el paso anterior.
- Haga clic en el campo Subred para seleccionar el intervalo de direcciones IPv6 que acaba de crear.
El recurso se aprovisiona automáticamente con el tipo de pila de la subred.
gcloud
Para crear una red en modo personalizado que admita subredes de pila dual, ejecuta el comando
gcloud compute networks create.Para configurar intervalos IPv6 internos en cualquier subred de esta red, usa la marca
--enable-ula-internal-ipv6. Esta opción asigna un prefijo ULA/48del intervalofd20::/20que usa Google Cloud para los intervalos de subredes IPv6 internas.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Sustituye
NETWORKpor el nombre de la red VPC que contendrá la nueva subred.Para convertir o actualizar una red en modo personalizado para que admita subredes de pila dual, ejecuta el siguiente comando:
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Sustituye
NETWORKpor el nombre de la red VPC que contendrá la nueva subred.Para crear una subred de doble pila con un intervalo de IPv6, ejecuta el comando
subnets createcon los ajustes de doble pila:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Haz los cambios siguientes:
SUBNET: un nombre para la nueva subred.NETWORK: nombre de la red de VPC que contendrá la nueva subred.PRIMARY_IPv4_RANGE: el intervalo IPv4 principal de la nueva subred, en notación CIDR. Para obtener más información, consulta la sección sobre los intervalos de subred IPv4.IPV6_ACCESS_TYPE: el tipo de acceso IPv6 de la nueva subred,internaloexternal.REGION: la Google Cloud región en la que se creará la nueva subred.
Despliega un servicio de Cloud Run, ejecuta un trabajo o despliega un grupo de trabajadores en la subred de pila dual que has creado. El recurso se aprovisiona automáticamente con el tipo de pila de la subred.
YAML
Si va a crear un servicio, puede saltarse este paso. Si va a actualizar un servicio, descargue su configuración YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualice los siguientes 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
Sustituye:
- SERVICE_NAME con el nombre de tu servicio de Cloud Run. Los nombres de servicio deben tener 49 caracteres como máximo y ser únicos por región y proyecto.
- REGION por la región de tu servicio de Cloud Run, que debe coincidir con la región de tu subred.
- NETWORK con el nombre de tu red de VPC.
- SUBNET con el nombre de tu subred. Puedes desplegar o ejecutar varios servicios, trabajos o grupos de trabajadores en la misma subred.
- Opcional: NETWORK_TAG_NAMES con los nombres de las etiquetas de red que quieras asociar a un servicio. En el caso de los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión de servicio puede tener etiquetas de red diferentes, como
network-tag-2. - EGRESS_SETTING con un
valor de ajuste de salida:
all-traffic: envía todo el tráfico saliente a través de la red VPC.private-ranges-only: solo envía tráfico a direcciones internas a través de la red de VPC.
- IMAGE por la URL de la imagen de tu contenedor de servicio.
También puedes especificar más configuración, como variables de entorno o límites de memoria.
Crea o actualiza el servicio con el siguiente comando:
gcloud run services replace service.yaml
Terraform
Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Añade lo siguiente a tu archivo
main.tf:
Si quieres permitir el acceso al servicio sin autenticación, puedes hacerlo público.
Cambiar una subred de pila única a pila dual
Para añadir un intervalo de subred IPv6 a una subred solo IPv4 de una red VPC en modo personalizado, consulta Cambiar el tipo de pila de una subred a doble pila. A continuación, despliega el servicio de Cloud Run, ejecuta el trabajo o despliega el grupo de trabajadores en la subred de doble pila.
Cambiar una subred de pila dual a pila única
Para cambiar la subred de doble pila de un recurso a una subred de pila única, consulta Cambiar una subred de doble pila a solo IPv4. A continuación, despliega el servicio de Cloud Run, ejecuta el trabajo o despliega el grupo de trabajadores en la subred de doble pila.
Verificar la red y la subred
Para comprobar que tu recurso está en la red de VPC, ejecuta el siguiente comando:
gcloud run services describe SERVICE_NAME --region=REGION
Sustituye REGION por la Google Cloud región en la que se creó la nueva subred.
En el siguiente ejemplo de salida se muestran tu red y tu subred:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only