Esta página describe cómo agregar un grupo de instancias administrado (MIG) existente al servicio backend o grupo de destino de un balanceador de carga.
Un equilibrador de carga distribuye el tráfico de usuarios, lo que ayuda a reducir el riesgo de experimentar problemas de rendimiento en su aplicación. Cloud Load Balancing utiliza grupos de instancias , tanto administrados como no administrados, para atender el tráfico. Dependiendo del tipo de balanceador de carga que esté utilizando, puede agregar grupos de instancias a un grupo de destino o servicio backend.
Para obtener información sobre cómo crear un tipo específico de balanceador de carga con un backend MIG, consulte la documentación de Cloud Load Balancing .
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Vaya a la página Equilibrio de carga en la consola de Google Cloud.
- Haga clic en el nombre del servicio backend al que está agregando el grupo de instancias administrado.
- Haga clic en Editar .
- Haga clic en +Agregar backend .
- Seleccione el grupo de instancias que desea agregar.
- Edite cualquier configuración opcional que desee cambiar.
- Guarde sus cambios.
- Vaya a la página Grupos de destino en la consola de Google Cloud.
- Haga clic en el grupo de destino al que desea agregar el grupo de instancias.
- Haga clic en el botón Editar .
- Desplácese hacia abajo hasta la sección Instancias de VM y haga clic en Seleccionar grupos de instancias .
- Seleccione un grupo de instancias en el menú desplegable.
- Guarde sus cambios.
-
INSTANCE_GROUP
es el nombre del grupo de instancias. -
TARGET_POOL,..
es el nombre de uno o más grupos de destino al que agregar este grupo de instancias. -
PROJECT_ID
es el ID del proyecto para esta solicitud. -
REGION
es la región del grupo de instancias. -
INSTANCE_GROUP
es el nombre del grupo de instancias. - El tráfico se equilibra entre todos los puertos con el mismo nombre de puerto.
- Un servicio backend determinado solo puede reenviar tráfico a un puerto designado a la vez.
Si utiliza varios números de puerto para un puerto con nombre, todos los puertos deben ser para la misma aplicación.
Por ejemplo,
http:80,http:8080
funciona, perohttp:80,http:443
no funciona porque el puerto 80 generalmente no admite TLS.-
instance-group-a
con un puerto con nombrehttp-port:80
-
instance-group-b
con un puerto con nombrehttp-port:79
- En la consola de Google Cloud, vaya a la página de grupos de instancias .
- Haga clic en el nombre del grupo de instancias donde desea especificar puertos con nombre. Se abre una página con las propiedades del grupo de instancias.
- Haga clic en Editar para modificar este grupo de instancias administrado.
- En la sección Asignación de puertos , haga clic en Agregar puerto e ingrese el nombre del puerto deseado y los números de puerto que desea asociar con ese nombre. Si necesita más entradas, haga clic en Agregar puerto nuevamente.
- Haga clic en Guardar para guardar los cambios y aplicar los puertos nombrados a las instancias del grupo de instancias administrado.
- Pruebe el tutorial Uso del equilibrio de carga para aplicaciones de alta disponibilidad .
- Crea una plantilla de instancias que puedas usar para un grupo de instancias administrado.
- Crea un grupo de instancias administrado regional .
- Habilite la reparación automática para su grupo de instancias administrado.
- Habilite el escalado automático para su grupo de instancias administrado.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Agregar un grupo de instancias administrado a un servicio backend
Es necesario un servicio de backend para crear la mayoría de los tipos de balanceadores de carga.
Un servicio de backend puede contener varios backends. Un grupo de instancias es un tipo de backend. Las instancias del grupo de instancias responden al tráfico del balanceador de carga. El servicio backend, a su vez, sabe qué instancias puede utilizar, cuánto tráfico pueden manejar y cuánto tráfico están manejando actualmente. Además, el servicio backend monitorea la verificación del estado y no envía nuevas conexiones a instancias en mal estado.
Utilice estas instrucciones para agregar un grupo de instancias administrado a un servicio backend.
Consola
nube de gcloud
Utilice el comando
add-backend
:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP \ [--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \ --balancing-mode=BALANCING_MODE
La compatibilidad con el modo de equilibrio difiere según el tipo de equilibrador de carga. Para obtener la lista completa, consulte Modo de equilibrio disponible para cada equilibrador de carga .
Se requieren parámetros adicionales según el modo de equilibrio del grupo de instancias administrado. Para obtener más información, consulte el comando
add-backend
en el SDK.DESCANSAR
Para agregar un servicio backend usando la API REST, consulte backendServices .
Limitaciones
El equilibrio de carga con un MIG regional no admite la capacidad objetivo de
max-rate
en los modos de equilibrioRATE
yUTILIZATION
. Para obtener más información sobre las pautas de uso de cada balanceador de carga, consulte Modos de equilibrio y configuración de capacidad de destino .Agregar un grupo de instancias administrado a un grupo de destino
Un grupo de destino es un objeto que contiene una o más instancias de máquinas virtuales. Un grupo de destino se utiliza en Network Load Balancers de paso externo , donde el balanceador de carga reenvía las solicitudes de los usuarios al grupo de destino adjunto. Las instancias que forman parte de ese grupo de destino atienden estas solicitudes y devuelven una respuesta. Puede agregar un grupo de instancias administrado a un grupo de destino para que cuando se agreguen o eliminen instancias del grupo de instancias, el grupo de destino también se actualice automáticamente con los cambios.
Antes de poder agregar un grupo de instancias administrado a un grupo de destino, el grupo de destino debe existir. Para obtener más información, consulte la documentación para Agregar un grupo de destino .
Para agregar un grupo de instancias administrado existente a un grupo de destino, siga estas instrucciones. Esto hace que todas las instancias de VM que forman parte del grupo de instancias administrado se agreguen al grupo de destino.
Consola
nube de gcloud
Utilice el comando
set-target-pools
:gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \ --target-pools TARGET_POOL,..
dónde:
DESCANSAR
Llame al método
setTargetPools
para un MIG regional o MIG zonal . Por ejemplo:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
dónde:
El cuerpo de la solicitud debe contener una lista de URI de los grupos de destino a los que desea agregar este grupo. Por ejemplo:
{ "targetPools": [ "regions/us-central1/targetPools/example-targetpool-1", "regions/us-central1/targetPools/example-targetpool-2" ] }
Asignar puertos con nombre a grupos de instancias administrados
Los puertos con nombre son pares clave-valor que representan el nombre y el número de un puerto. El nombre del puerto representa el nombre de un servicio o aplicación. El número de puerto representa el puerto en el que se ejecuta el servicio o la aplicación.
Cloud Load Balancing utiliza los puertos con nombre. Los balanceadores de carga que actúan como servidores proxy se suscriben a un único puerto con nombre en su configuración de servicio backend. El nombre del puerto se traduce a un número de puerto según la asignación del puerto nombrado de cada backend del grupo de instancias.
Por ejemplo, un servicio backend puede suscribirse a un puerto denominado
http-port
. El grupo de instancias backend puede tener un puerto llamadohttp-port:80
. El grupo de instancias backend indica al balanceador de carga que envíe tráfico a una VM en el grupo en el puerto 80 mediante un protocolo (como TCP). El protocolo se define en el servicio backend del balanceador de carga.Los puertos con nombre son metadatos simples utilizados por los balanceadores de carga de proxy . Los puertos con nombre no controlan los recursos de red o firewall en Compute Engine.
Múltiples números de puerto para un puerto con nombre
Puede asignar varios puertos para cada nombre de servicio. También puede asignar varios nombres de servicios para cada puerto.
Tenga en cuenta los siguientes puntos:
Puedes asignar varios puertos con nombre en un grupo de instancias. A modo de ilustración, considere un servicio de backend de ejemplo que se suscribe al puerto denominado
http-port
y que tiene dos grupos de instancias de backend:Este servicio de backend envía tráfico al puerto 80 para las máquinas virtuales del
instance-group-a
y al puerto 79 para las máquinas virtuales delinstance-group-b
.Cuando agregas el mismo grupo de instancias a múltiples servicios backend (para múltiples balanceadores de carga) y el grupo de instancias atiende diferentes puertos en cada balanceador de carga, no agregues todos los números de puerto a un único puerto con nombre. En su lugar, cree un puerto con nombre único y asígnelo a un conjunto de puertos que cada servicio backend debería servir.
Por ejemplo, supongamos que tiene tres aplicaciones, cada una con su propio equilibrador de carga. Cada aplicación tiene su propio número de puerto: 81 para
app1
, 82 paraapp2
y 83 paraapp3
. Suponiendo que los tres servicios backend utilizan un grupo de instancias común, asigne los puertos con nombre para este grupo de instancias como[app1:81, app2:82, app3:83]
.Puertos nombrados y controles de salud
Para que un puerto con nombre con varios números de puerto en un servicio backend funcione en un balanceador de carga de aplicaciones externo o en un balanceador de carga de aplicaciones interno, la verificación de estado debe tener el indicador
--use-serving-port
en lugar de un número de puerto específico. Esta opción no está disponible en la consola de Google Cloud. Para configurar--use-serving-port
, debe utilizar la CLI o la API de Google Cloud.Por ejemplo, suponga que tiene una aplicación que equilibra la carga del tráfico en tres puertos diferentes (81, 82, 83) en el mismo servicio backend con un único grupo de instancias. Puede asignar los puertos para estos grupos de instancias como
[app:81, 82, 83]
. La verificación de estado en este escenario debe tener el indicador--use-serving-port
.Para obtener más información, consulte la documentación de verificación del estado del equilibrio de carga .
Puertos con nombre y reglas de firewall
Los puertos con nombre no crean ni modifican Google Cloud reglas del cortafuegos . Para permitir el tráfico hacia las máquinas virtuales de backend, aún debe crear las reglas de firewall necesarias.
Puertos con nombre y servicios backend
Además de la configuración del grupo de instancias, también debes configurar el servicio backend. Por ejemplo, supongamos que configuras el puerto con nombre en un grupo de instancias con el nombre
my-service-name
y el puerto8888
:gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
Luego debe hacer referencia al puerto nombrado en la configuración del servicio backend con
--port-name
en el servicio backend establecido enmy-service-name
:gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Crear puertos con nombre
Consola
nube de gcloud
Para grupos de instancias administrados, configure uno o más puertos con nombre mediante el comando
instance-groups managed set-named-ports
. Para grupos no administrados, use el comandoinstance-groups set-named-ports
.gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
Por ejemplo:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:80,name2:8080
Para asignar varios puertos a cada nombre de servicio o varios nombres para cada servicio, cree más de una entrada para cada nombre o puerto. Por ejemplo, si los puertos
10
,20
y80
son para la misma aplicación, puede asignarname1
a todos esos puertos. Además, puede asignar dos nombres,name2
yname3
al puerto8080
. Finalmente, puedes asignar el puerto9000
aname4
, como en el siguiente ejemplo:gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Verifique las asignaciones de puertos con nombre para un grupo de instancias administrado usando el comando
get-named-ports
:gcloud compute instance-groups managed get-named-ports INSTANCE_GROUP
NAME PORT name1 10 name1 20 name1 80 name2 8080 name3 8080 name4 9000
DESCANSAR
La API
instanceGroupManagers
no ofrece un método APIsetNamedPorts
. En su lugar, utilice la APIinstanceGroups
para realizar esta tarea.Cree una solicitud a la API
instanceGroups
e incluya el nombre del grupo de instancias. Obtenga el valor defingerprint
actual para el grupo de instancias obteniendo información sobre un grupo específico . Incluya lafingerprint
y uno o más pares de valoresnamedPorts
en el cuerpo de la solicitud:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroups/INSTANCE_GROUP/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "PORT_NAME", "port": PORT_NUMBER }, { "name": "PORT_NAME", "port": PORT_NUMBER } ] }
Por ejemplo, si los puertos
10
,20
y80
son para la misma aplicación, puede asignarname1
a todos esos puertos. Además, puede asignar dos nombres,name2
yname3
al puerto8080
. Finalmente, puedes asignar el puerto9000
aname4
, como en el siguiente ejemplo:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 8080 }, { "name": "name2", "port": 9000 } ] }
Para asignar varios puertos a cada nombre de servicio, cree varias entradas para ese nombre de servicio. Por ejemplo, puede asignar los puertos
10
,20
y80
aname1
. También asigne el puerto8080
aname2
.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 10 }, { "name": "name1", "port": 20 } { "name": "name1", "port": 80 } { "name": "name2", "port": 8080 } { "name": "name3", "port": 80 } { "name": "name4", "port": 8080 } ] }
Para enumerar los puertos con nombre que ya están asignados a un grupo de instancias administrado, cree una solicitud
GET
que apunte al grupo:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-