En esta página, se describe cómo trabajar con subredes de solo proxy que usan los balanceadores de cargas basados en Envoy. Una subred de solo proxy proporciona un grupo de direcciones IP que se reservan exclusivamente para proxies de Envoy que usan los balanceadores de cargas de Google Cloud. No se puede usar para otros fines.
Los proxies finalizan las conexiones entrantes y evalúan dónde debe ir cada solicitud HTTP(S) según la asignación de URL, la afinidad de sesión del servicio de backend, el modo de balanceo de cada grupo de instancias de backend o NEG y otros factores.
Un cliente establece una conexión a la dirección IP y al puerto de la regla de reenvío del balanceador de cargas.
Cada proxy escucha en la dirección IP y el puerto que especifica la regla de reenvío del balanceador de cargas correspondiente. Uno de los proxies recibe y finaliza la conexión de red del cliente.
El proxy establece una conexión con la VM o el extremo de backend en un NEG, según lo determinan los servicios de backend y la asignación de URL del balanceador de cargas.
A cada uno de los proxies del balanceador de cargas se le asigna una dirección IP interna. Los paquetes enviados desde un proxy a una VM o un extremo de backend tienen una dirección IP de origen de la subred de solo proxy.
Debes crear subredes de solo proxy sin importar si tu red está en modo automático o personalizado. Una subred de solo proxy debe proporcionar 64 direcciones IP o más. Esto corresponde a una longitud de prefijo de /26
o menor. El tamaño de subred recomendado es /23
(512 direcciones de solo proxy).
La asignación de proxy está a nivel de la VPC, no a nivel del balanceador de cargas. Debes crear una subred de solo proxy en cada región de una red virtual (VPC) en la que uses balanceadores de cargas basados en Envoy. Si implementas múltiples balanceadores de cargas en la misma región y red de VPC, estos comparten la misma subred de solo proxy para el balanceo de cargas.
La subred de solo proxy no se puede usar para ningún otro propósito. La dirección IP de la regla de reenvío del balanceador de cargas no proviene de la subred de solo proxy. Tampoco lo hacen las direcciones IP de las VM y los extremos de backend.
Balanceadores de cargas compatibles
Los siguientes balanceadores de cargas basados en Envoy requieren subredes de solo proxy:
Subred de solo proxy con el propósito
GLOBAL_MANAGED_PROXY
:En una red y región determinadas, se comparte única subred de solo proxy de propósito
GLOBAL_MANAGED_PROXY
entre todos los balanceadores de cargas de aplicaciones internos entre regiones de esa región. En cualquier momento, solo una subred con propósitoGLOBAL_MANAGED_PROXY
puede estar activa en cada región de una red de VPC.Subred de solo proxy con el propósito
REGIONAL_MANAGED_PROXY
:- Balanceador de cargas de aplicaciones externo regional
- Balanceador de cargas de aplicaciones interno regional
- Balanceador de cargas de red del proxy externo regional
- Balanceador de cargas de red del proxy interno regional
En una red y región determinadas, se comparte única subred de solo proxy de propósito
REGIONAL_MANAGED_PROXY
entre todos los balanceadores de cargas regionales basados en Envoy. En cualquier momento, solo una subred con propósitoREGIONAL_MANAGED_PROXY
puede estar activa en cada región de una red de VPC.
Cómo las subredes de solo proxy encajan en la arquitectura del balanceador de cargas
En el siguiente diagrama, se muestran los recursos de Google Cloud necesarios para un balanceador de cargas de aplicaciones externo regional.
En el siguiente diagrama, se muestran los recursos de Google Cloud necesarios para un balanceador de cargas de aplicaciones interno regional.
Como se muestra en los diagramas, una implementación del balanceador de cargas basado en Envoy requiere al menos dos subredes:
- Las VM de backend y los extremos de backend del balanceador de cargas usan una sola subred cuyo rango de direcciones IP principal es
10.1.2.0/24
(en este ejemplo). Esta no es la subred de solo proxy. Puedes usar varias subredes para tus extremos y VMs de backend si las subredes están en la misma región que el balanceador de cargas. Para los balanceadores de cargas de aplicaciones internos, la dirección IP del balanceador de cargas asociada con la regla de reenvío también puede estar en esta subred (pero no es necesario). - La subred de solo proxy es
10.129.0.0/23
(en este ejemplo).
Crea una subred de solo proxy
Crear una subred de solo proxy es casi el mismo procedimiento que se usa para crear cualquier subred, excepto que se agregan algunas marcas. En el caso de la subred de solo proxy, --purpose
debe configurarse como REGIONAL_MANAGED_PROXY
o GLOBAL_MANAGED_PROXY
, según el balanceador de cargas.
No puedes volver a usar una subred existente como la subred de solo proxy. Debes crear una subred nueva en cada región que tenga un balanceador de cargas HTTP(S) basado en Envoy.
Esto se debe en parte a que el comando subnets update
no permite modificar el campo --purpose
de la subred.
Debes crear una subred de solo proxy de modo que la usen los proxies del balanceador de cargas antes de crear reglas de reenvío para tus balanceadores de cargas regionales. Si intentas configurar un balanceador de cargas regional sin crear primero una subred de solo proxy para la región, el proceso de creación del balanceador de cargas falla.
Consola
- En la consola de Google Cloud, ve a la página Redes de VPC.
Ir a la página Redes de VPC - Haz clic en el nombre de la red de VPC compartida a la que deseas agregar una subred de solo proxy.
- Haz clic en Agregar subred.
- Ingresa un Nombre.
- Selecciona una Región.
- Configura Propósito como Proxy administrado regional.
- Ingresa un Rango de direcciones IP.
- Haga clic en Add.
gcloud
El comando gcloud compute networks subnets create crea una subred de solo proxy.
gcloud compute networks subnets create SUBNET_NAME \ --purpose=SUBNET_PURPOSE \ --role=ACTIVE \ --region=REGION \ --network=VPC_NETWORK_NAME \ --range=CIDR_RANGE
Los campos se definen de la siguiente manera:
- SUBNET_NAME es el nombre de la subred de solo proxy.
- SUBNET_PURPOSE es el propósito de la subred. Establece esto en
REGIONAL_MANAGED_PROXY
oGLOBAL_MANAGED_PROXY
, según el balanceador de cargas. - REGION es la región de la subred de solo proxy.
- VPC_NETWORK_NAME es el nombre de la red de VPC que contiene la subred.
- CIDR_RANGE es el rango de direcciones IP principal de la subred. Debes usar una máscara de subred de una longitud máxima de
26
a fin de que al menos 64 direcciones IP estén disponibles para los proxies de la región. El tamaño recomendado de la máscara de subred es/23
.
Para obtener un ejemplo de configuración completo, consulta Configura la subred de solo proxy.
Debes configurar una regla de firewall para que tus backends acepten conexiones de la subred de solo proxy. Para obtener un ejemplo de configuración completo, incluida la configuración de reglas de firewall, consulta lo siguiente:
- Configura un balanceador de cargas de aplicaciones externo regional
- Configura un balanceador de cargas de aplicaciones interno entre regiones
- Configura un balanceador de cargas de aplicaciones interno regional
- Configura un balanceador de cargas de red del proxy interno regional
- Configura un balanceador de cargas de red del proxy externo regional
Disponibilidad del proxy
En ocasiones, las regiones de Google Cloud no tienen suficiente capacidad de proxy para un nuevo balanceador de cargas. Si esto sucede, la consola de Google Cloud muestra un mensaje de advertencia de disponibilidad del proxy cuando creas el balanceador de cargas. Para resolver este problema, puedes realizar una de las siguientes acciones:
- Selecciona una región diferente para el balanceador de cargas. Esta puede ser una opción práctica si tienes backends en otra región.
- Selecciona una red de VPC que ya tenga asignada una subred de solo proxy.
- Espera a que se resuelva el problema de capacidad.
Cambia el tamaño o el rango de direcciones de una subred de solo proxy
Cuando cambias la cantidad de backends en tu implementación, es posible que debas cambiar el tamaño o el rango de direcciones de la subred de solo proxy.
No puedes expandir una subred de solo proxy de la misma manera que lo harías para un rango de direcciones principal (con el comando expand-ip-range). En su lugar, debes crear una subred de solo proxy de copia de seguridad que satisfaga tus necesidades y, luego, promoverla al rol activo. Esto se debe a que solo una subred de solo proxy puede estar activa por región y por red de VPC, y debido a que solo puedes expandir el rango de IP principal de una subred.
Cambiar una subred de solo proxy de copia de seguridad a activa no interrumpe las conexiones nuevas:
- La subred de solo proxy recién activada se usa para conexiones nuevas.
- La subred de solo proxy que estaba activa (y ahora es de copia de seguridad) ya no se usa para conexiones nuevas.
- Google Cloud comienza a desviar las conexiones existentes de los proxies en la subred de solo proxy que estaba activa (y que ahora es de copia de seguridad).
Solo se puede crear una subred activa y una subred de copia de seguridad por región y por red de VPC.
Consola
Crea una subred de solo proxy de copia de seguridad en la misma región y especifica un rango de direcciones IP principal que se adapte a tus necesidades
- En la consola de Google Cloud, ve a la página Redes de VPC.
Ir a la página Redes de VPC - Haz clic en el nombre de la red de VPC compartida a la que deseas agregar una subred de solo proxy.
- Haz clic en Agregar subred.
- Ingresa un Nombre.
- Selecciona una Región.
- Configura Propósito como Proxy administrado regional.
- En Rol, selecciona Copia de seguridad.
- Ingresa un Rango de direcciones IP.
- Haga clic en Agregar.
- En la consola de Google Cloud, ve a la página Redes de VPC.
Crea o modifica reglas de firewall de permiso de entrada que se apliquen a tus VM o extremos de backend de modo que incluyan el rango de IP principal de la subred de solo proxy de copia de seguridad.
Asciende la subred de solo proxy de copia de seguridad al rol activo. Con esta acción, también se desciende la subred de solo proxy que antes estaba activa al rol de copia de seguridad:
- En la consola de Google Cloud, ve a la página Redes de VPC.
Ir a la página Redes de VPC - Haz clic en el nombre de la red de VPC compartida que deseas modificar.
- En Subredes de solo proxy reservadas para el balanceo de cargas, ubica la subred de copia de seguridad creada en el paso anterior.
- Haz clic en Activar.
- Especifica un Tiempo de espera de vaciado opcional.
- Haz clic en Activar la subred.
- En la consola de Google Cloud, ve a la página Redes de VPC.
Después de que se agote el tiempo de espera del desvío de la conexión o cuando estés seguro de que las conexiones a las VM o los extremos de backend de tu servidor no provienen de proxies de la subred de solo proxy que estaba activa (y ahora es de copia de seguridad), puedes hacer lo siguiente:
- Modifica las reglas de firewall de entrada permitida que se aplican a las VM o extremos de backend para que no incluyan el rango de direcciones IP principal de la subred de solo proxy que estaba activa (y que ahora es de copia de seguridad).
- Borra la subred de solo proxy que estaba activa (y que ahora es de copia de seguridad) a fin de liberar las direcciones IP que la subred usaba para su rango de direcciones IP principal.
gcloud
Crea una subred de solo proxy de copia de seguridad en la misma región y especifica un rango de direcciones IP principal que se adapte a tus necesidades mediante el comando gcloud compute networks subnets create con la marca
--role=BACKUP
.gcloud compute networks subnets create BACKUP_PROXY_SUBNET \ --purpose=SUBNET_PURPOSE \ --role=BACKUP \ --region=REGION \ --network=VPC_NETWORK_NAME \ --range=CIDR_RANGE
Crea o modifica reglas de firewall de permiso de entrada que se apliquen a tus VM o extremos de backend de modo que incluyan el rango de direcciones IP principal de la subred de solo proxy de copia de seguridad.
Con el siguiente comando de
gcloud
, se asciende una subred de solo proxy de copia de seguridad a la función activa y se desciende la subred de solo proxy que antes estaba activa a la función de copia de seguridad:gcloud compute networks subnets update BACKUP_PROXY_SUBNET \ --region=REGION \ --role=ACTIVE \ --drain-timeout=CONNECTION_DRAINING_TIMEOUT
Reemplaza lo siguiente:
BACKUP_PROXY_SUBNET
: el nombre de la subred de solo proxy de copia de seguridad recién creadaREGION
: la región de la subred de solo proxy de copia de seguridad recién creada.CONNECTION_DRAINING_TIMEOUT
: la cantidad de tiempo, en segundos, que Google Cloud usa para migrar las conexiones existentes de los proxies en la subred de solo proxy que se activó antes.
Después de que se agote el tiempo de espera del desvío de la conexión o cuando estés seguro de que las conexiones a las VM o los extremos de backend de tu servidor no provienen de proxies de la subred de solo proxy que estaba activa (y ahora es de copia de seguridad), puedes hacer lo siguiente:
- Modifica las reglas de firewall de entrada permitida que se aplican a las VM o extremos de backend para que no incluyan el rango de direcciones IP principal de la subred de solo proxy que estaba activa (y ahora es de copia de seguridad).
- Borra la subred de solo proxy que estaba activa (y que ahora es de copia de seguridad) a fin de liberar las direcciones IP que la subred usaba para su rango de direcciones IP principal.
Ejemplo: Modifica una subred de solo proxy
En esta sección, se incluye una configuración de muestra que te muestra los pasos necesarios para modificar la subred de solo proxy en una región.
En este ejemplo se da por sentado que la subred de solo proxy actual ACTIVE
llamada proxy-only-subnet-us-west1
tiene un rango de direcciones IP de 10.129.0.0/23
.
Crea una subred de solo proxy de copia de seguridad dedicada a la región.
gcloud compute networks subnets create new-backup-subnet-us-west1 \ --purpose=SUBNET_PURPOSE \ --role=BACKUP \ --region=us-west1 \ --network=default \ --range=10.130.0.0/23
Actualiza tu regla de firewall para aceptar conexiones desde la subred nueva.
gcloud compute firewall-rules update proxy-only-subnet-firewall \ --source-ranges 10.129.0.0/23,10.130.0.0/23
Actualiza la subred nueva, configúrala como la subred de solo proxy
ACTIVE
en la región y espera a que la subred antigua se desvíe.gcloud compute networks subnets update new-backup-subnet-us-west1 \ --drain-timeout 1h --role ACTIVE
Para desviar de inmediato un rango de direcciones IP, establece
--drain-timeout
en0s
. Esto finalizará con rapidez todas las conexiones a los proxies que tengan direcciones asignadas en la subred que se desvía.Supervisa el estado del desvío mediante un comando
list
odescribe
. El estado de la subred seráDRAINING
mientras se desvía.gcloud compute networks subnets list
Espera a que se complete el desvío. Cuando se desvía la subred de solo proxy anterior, el estado de la subred pasa a
READY
.Actualiza la regla de firewall de subred de solo proxy para permitir solo conexiones desde la subred nueva.
gcloud compute firewall-rules proxy-only-subnet-firewall \ --source-ranges 10.130.0.0/23
Borra la subred anterior.
gcloud compute networks subnets delete proxy-only-subnet-us-west1 \ --region us-west1
Migra el propósito de una subred de solo proxy
Si creaste una subred de solo proxy con --purpose=INTERNAL_HTTPS_LOAD_BALANCER
, deberás migrar el propósito de la subred a REGIONAL_MANAGED_PROXY
antes de que puedas crear otros balanceadores de cargas basados en Envoy en la misma región de la red de VPC.
Console
Si usas la consola de Google Cloud para crear el balanceador de cargas, se te pedirá que migres el propósito de una subred de solo proxy creada antes de --purpose=INTERNAL_HTTPS_LOAD_BALANCER
a REGIONAL_MANAGED_PROXY
mientras creas el balanceador de cargas.
gcloud
Para cambiar el propósito de una subred de solo proxy existente de --purpose=INTERNAL_HTTPS_LOAD_BALANCER
a REGIONAL_MANAGED_PROXY
, usa el siguiente comando:
gcloud compute networks subnets update PROXY_ONLY_SUBNET \ --purpose=REGIONAL_MANAGED_PROXY \ --region=REGION
Borra una subred de solo proxy
Si borras una subred de solo proxy, se libera su rango de direcciones IP principal para que puedas usarlo con otro propósito. Google Cloud aplica las siguientes reglas cuando recibe una solicitud para borrar una subred de solo proxy:
Una subred de solo proxy activa no se puede borrar si hay al menos un balanceador de cargas regional en la misma región y red de VPC.
Una subred de solo proxy activa no se puede borrar si hay una subred de solo proxy de copia de seguridad en la misma región y red de VPC.
Si intentas borrar una subred de solo proxy activa antes de borrar la copia de seguridad, aparecerá el siguiente mensaje de error: “Uso de recursos no válido: no se puede borrar una subred ACTIVE porque existe una subred BACKUP”.
En la práctica, estas reglas tienen el siguiente efecto:
Si no se define un balanceador de cargas regional en una región y una red de VPC determinadas, puedes borrar las subredes de solo proxy en esa región. Si existe una subred de solo proxy de copia de seguridad, primero debes borrarla para poder borrar la subred de solo proxy activa.
Si tienes al menos un balanceador de cargas de regional definido en una región y una red de VPC determinadas, no puedes borrar la subred de solo proxy activa; sin embargo, puedes promover una subred de solo proxy de copia de seguridad a la función activa, lo que desciende el nivel de la subred de solo proxy que estaba activa a la función de copia de seguridad de forma automática. Una vez que se desvíen las conexiones, puedes borrar la subred de solo proxy de copia de seguridad (que antes estaba activa).
Consulta la sección Borra subredes en la documentación de red de VPC para obtener más información.
Limitaciones
Se aplican las siguientes restricciones a las subredes de solo proxy:
No puedes tener una subred
INTERNAL_HTTPS_LOAD_BALANCER
y unaREGIONAL_MANAGED_PROXY
en la misma red y región, de la misma manera que no puedes tener dos proxiesREGIONAL_MANAGED_PROXY
o dos proxiesINTERNAL_HTTPS_LOAD_BALANCER
.Solo puedes crear una subred de solo proxy activa y una de copia de seguridad en cada región de cada red de VPC.
No puedes crear una subred de solo proxy de copia de seguridad, a menos que ya hayas creado una subred de solo proxy activa en esa región y red.
Puedes cambiar la función de una subred de solo proxy de copia de seguridad a activa si actualizas la subred. Cuando lo hagas, Google Cloud cambiará de manera automática la subred de solo proxy que antes estaba activa para crear una copia de seguridad. No puedes establecer de forma explícita la función de una subred de solo proxy a copia de seguridad con solo actualizarla.
Durante el período de vaciado de conexiones de una subred de solo proxy (
--drain-timeout
), no se puede cambiar la función de una subred de solo proxy de copia de seguridad a activa.Google Cloud no te advierte si la subred de solo proxy se queda sin direcciones IP.
Las subredes de solo proxy no son compatibles con los registros de flujo de VPC.
¿Qué sigue?
- Configura un balanceador de cargas de aplicaciones externo regional
- Configura un balanceador de cargas de aplicaciones interno
- Configura un balanceador de cargas de red del proxy interno regional
- Configura un balanceador de cargas de red del proxy externo regional