Las subredes de doble pila 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 existente solo IPv4 (pila única) a una subred de pila doble.
Tipos de subredes
Las redes de VPC admiten los siguientes tipos de subredes de Compute Engine:
Subredes solo IPv4 (pila única) con solo rangos de subred IPv4
Subredes IPv4 e IPv6 (pila doble) con rangos de subred IPv4 e IPv6
Limitaciones de la pila doble
Antes de cambiar el tipo de pila en un recurso existente de Cloud Run, ten en cuenta las siguientes limitaciones:
La compatibilidad con doble pila solo está disponible con subredes en una red de VPC en modo personalizado. Para que el tipo de acceso interno esté disponible para las subredes de doble pila, se debe habilitar el rango de IPv6 interno de la red de VPC. Configura o convierte la red de VPC al modo personalizado.
En comparación con las subredes solo IPv4, las subredes de pila doble pueden experimentar latencias de inicio en frío elevadas, lo que limita la rapidez con la que tu aplicación puede escalar.
NAT64 no es compatible.
Antes de comenzar
Asegúrate de que el agente de servicio de Cloud Run tenga el rol de administrador de IP pública de Compute (roles/compute.publicIpAdmin) para usar la subred con IPv6 externa.
Agrega una subred de pila doble en un recurso
Las subredes de pila doble tienen rangos de direcciones IPv4 e IPv6.
Para agregar una subred de pila doble en un recurso de Cloud Run, haz lo siguiente:
Console
En la consola de Google Cloud , haz lo siguiente:
Habilita la API de Compute Engine con este comando:
Ve a la página Redes de VPC:
Haz clic en Crear red de VPC si vas a crear una red nueva en modo personalizado. Si usas una red de VPC existente, haz clic en su nombre para ver la página Detalles de la red de VPC.
Si creas una red nueva o conviertes una existente, ingresa el nombre y asegúrate de que el Modo de creación de subredes esté configurado como Personalizado. Luego, selecciona Configurar un rango de IPv6 interno de ULA para esta red de VPC.
En la pestaña Subredes, haz clic en Agregar subred. En el panel que aparece, haz lo siguiente:
- Proporciona un Nombre.
- Selecciona una Región.
- En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
- Ingresa un rango IPv4. Este es el rango IPv4 principal de la subred.
Selecciona el tipo de acceso IPv6.
Si la opción Interno no está disponible y la necesitas, comprueba que se haya asignado un rango de IPv6 interno en la red.
Haz clic en Agregar.
Implementa un servicio de Cloud Run, ejecuta un trabajo o implementa un grupo de trabajadores en la subred de doble pila que creaste. A medida que ingreses los detalles del recurso necesarios, selecciona el nuevo rango de direcciones IPv6 siguiendo estos pasos:
- Haz clic en Contenedores, volúmenes, herramientas de redes y seguridad y selecciona la pestaña Herramientas de redes.
- Haz clic en Conéctate a una VPC para el tráfico saliente y, luego, en Enviar tráfico directamente a una VPC.
- Selecciona la red que creaste en el paso anterior.
- Haz clic en el campo Subred para seleccionar el rango de direcciones IPv6 recién creado.
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 doble pila, ejecuta el comando
gcloud compute networks create.Para configurar los rangos de IPv6 internos en cualquier subred de esta red, usa la marca
--enable-ula-internal-ipv6. Esta opción asigna un prefijo ULA/48que pertenece al rangofd20::/20que usa Google Cloud para los rangos de subred IPv6 internos.gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Reemplaza
NETWORKpor el nombre de la red de VPC que contendrá la subred nueva.Para convertir o actualizar una red en modo personalizado de modo que admita subredes de pila doble, ejecuta el siguiente comando:
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
Reemplaza
NETWORKpor el nombre de la red de VPC que contendrá la subred nueva.Para crear una subred de pila doble con un rango de IPv6, ejecuta el comando
subnets createcon la configuración de pila doble:gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=IPV6_ACCESS_TYPE \ --region=REGION
Reemplaza lo siguiente:
SUBNET: Es un nombre para la subred nueva.NETWORK: Es el nombre de la red de VPC que contendrá la subred nueva.PRIMARY_IPv4_RANGE: Es el rango IPv4 principal para la subred nueva, en notación CIDR. Para obtener más información, consulta Rangos de subredes IPv4.IPV6_ACCESS_TYPE: Es el tipo de acceso IPv6 para la subred nueva, ya seainternaloexternal.REGION: Es la región Google Cloud en la que se creará la subred nueva.
Implementa un servicio de Cloud Run, ejecuta un trabajo o implementa un grupo de trabajadores en la subred de doble pila que creaste. El recurso se aprovisiona automáticamente con el tipo de pila de la subred.
YAML
Si creas un servicio nuevo, omite este paso. Si actualizas un servicio existente, descarga su configuración de YAML:
gcloud run services describe SERVICE --format export > service.yaml
Actualiza 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
Reemplaza lo siguiente:
- SERVICE_NAME por el nombre del servicio de Cloud Run. Los nombres de servicios deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
- REGION por la región del servicio de Cloud Run, que debe coincidir con la región de la subred.
- NETWORK por el nombre de la red de VPC.
- SUBNET por el nombre de la subred Puedes implementar o ejecutar varios servicios, trabajos o grupos de trabajadores en la misma subred.
- Opcional: NETWORK_TAG_NAMES por los nombres de las etiquetas de red que deseas asociar con un servicio. Para los servicios, las etiquetas de red se especifican a nivel de revisión. Cada revisión del servicio puede tener diferentes etiquetas de red, como
network-tag-2. - EGRESS_SETTING por un valor de configuración de salida:
all-traffic: Envía todo el tráfico saliente por medio de la red de VPC.private-ranges-only: Envía solo el tráfico a direcciones internas por medio de la red de VPC.
- IMAGE por la URL de la imagen de contenedor de servicio.
También puedes especificar más opciones de 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
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega lo siguiente a tu archivo
main.tf:
De manera opcional, haz que tu servicio sea público si deseas permitir el acceso sin autenticación.
Cambia una subred de pila única a pila doble
Para agregar un rango de subred IPv6 a una subred existente solo para IPv4 en una red de VPC en modo personalizado, consulta Cambia el tipo de pila de una subred a pila doble. Luego, implementa el servicio de Cloud Run, ejecuta el trabajo o implementa el grupo de trabajadores en la subred de doble pila.
Cambia una subred de pila doble a pila única
Para cambiar la subred de pila doble de un recurso a una subred de pila única, consulta Cambia una subred de pila doble a solo IPv4. Luego, implementa el servicio de Cloud Run, ejecuta el trabajo o implementa el grupo de trabajadores en la subred de doble pila.
Verifica la red y la subred
Para verificar que tu recurso esté en la red de VPC, ejecuta el siguiente comando:
gcloud run services describe SERVICE_NAME --region=REGION
Reemplaza REGION por la Google Cloud región en la que se creó la
subred nueva.
En el siguiente ejemplo de resultado, se muestran tu red y subred:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only