En esta página se describe cómo añadir un grupo de instancias gestionado (MIG) a un servicio de backend o a un grupo de destino de un balanceador de carga.
Un balanceador de carga distribuye el tráfico de los usuarios, lo que ayuda a reducir el riesgo de que tu aplicación tenga problemas de rendimiento. Cloud Load Balancing usa grupos de instancias, tanto gestionados como no gestionados, para servir tráfico. En función del tipo de balanceador de carga que utilices, puedes añadir grupos de instancias a un grupo de destino o a un servicio de backend.
Para obtener información sobre cómo crear un tipo específico de balanceador de carga con un backend de MIG, consulta la documentación de Cloud Load Balancing.
Antes de empezar
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Añadir un grupo de instancias gestionado a un servicio de backend
Se necesita 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. A su vez, el servicio de backend sabe qué instancias puede usar, cuánto tráfico pueden gestionar y cuánto tráfico están gestionando en ese momento. Además, el servicio de backend monitoriza las comprobaciones del estado y no envía nuevas conexiones a instancias en mal estado.
Sigue estas instrucciones para añadir un grupo de instancias gestionado a un servicio de backend.
Consola
- Ve a la página Balanceo de carga de la Google Cloud consola.
- Haga clic en el nombre del servicio backend al que va a añadir el grupo de instancias gestionado.
- Haz clic en Editar.
- Haz clic en + Añadir backend.
- Selecciona el grupo de instancias que quieras añadir.
- Edita los ajustes opcionales que quieras cambiar.
- Guarda los cambios.
gcloud
Usa 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 balanceo varía en función del tipo de balanceador de carga. Para ver la lista completa, consulta Modo de balanceo disponible para cada balanceador de carga.
Se necesitan parámetros adicionales en función del modo de balanceo del grupo de instancias gestionado. Para obtener más información, consulta el comando
add-backend
en el SDK.REST
Para añadir un servicio de backend mediante la API REST, consulta backendServices.
Limitaciones
El balanceo de carga con un MIG regional no admite la capacidad de destino
max-rate
en los modos de balanceoRATE
yUTILIZATION
. Para obtener más información sobre las directrices de uso de cada balanceador de carga, consulta Modos de balanceo y ajustes de capacidad de destino.Añadir un grupo de instancias gestionado a un grupo de destino
Un pool de destino es un objeto que contiene una o varias instancias de máquina virtual. Los grupos de destino se usan en los balanceadores de carga de red de paso a través externos, donde el balanceador de carga reenvía las solicitudes de los usuarios al grupo de destino asociado. Las instancias que forman parte de ese grupo de destino atienden estas solicitudes y devuelven una respuesta. Puede añadir un grupo de instancias gestionado a un grupo de destino para que, cuando se añadan o se quiten instancias del grupo de instancias, el grupo de destino también se actualice automáticamente con los cambios.
Para poder añadir un grupo de instancias gestionado a un grupo de destino, este debe existir. Para obtener más información, consulta la documentación sobre cómo añadir un grupo de destino.
Para añadir un grupo de instancias gestionadas a un grupo de destino, sigue estas instrucciones. De esta forma, todas las instancias de VM que forman parte del grupo de instancias gestionado se añadirán al grupo de destino.
Consola
- Ve a la página Grupos de destino de la Google Cloud consola.
- Haz clic en el grupo de destino al que quieras añadir el grupo de instancias.
- Haz clic en el botón Edit (Editar).
- Desplázate hacia abajo hasta la sección Instancias de VM y haz clic en Seleccionar grupos de instancias.
- Selecciona un grupo de instancias en el menú desplegable.
- Guarda los cambios.
gcloud
Usa el comando
set-target-pools
:gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \ --target-pools TARGET_POOL,..
donde:
INSTANCE_GROUP
es el nombre del grupo de instancias.TARGET_POOL,..
es el nombre de uno o varios grupos de destino a los que se añadirá este grupo de instancias.
REST
Llama al método
setTargetPools
para un MIG regional o un MIG de zona. Por ejemplo:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
donde:
PROJECT_ID
es el ID del proyecto de esta solicitud.REGION
es la región del grupo de instancias.INSTANCE_GROUP
es el nombre del grupo de instancias.
El cuerpo de la solicitud debe contener una lista de URIs de los grupos de destino a los que quieras añadir 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 gestionadas
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 una aplicación. El número de puerto representa el puerto en el que se ejecuta el servicio o la aplicación.
Cloud Load Balancing usa puertos con nombre. Los balanceadores de carga que actúan como proxies se suscriben a un solo puerto con nombre en su configuración de servicio de backend. El nombre del puerto se traduce a un número de puerto en función de la asignación del puerto con nombre de cada backend del grupo de instancias.
Por ejemplo, un servicio de backend puede suscribirse a un puerto llamado
http-port
. El grupo de instancias de backend puede tener un puerto llamadohttp-port:80
. El grupo de instancias de backend indica al balanceador de carga que envíe tráfico a una VM del grupo en el puerto 80 mediante un protocolo (como TCP). El protocolo se define en el servicio de backend del balanceador de carga.Los puertos con nombre son metadatos sencillos que usan los balanceadores de carga proxy. Los puertos con nombre no controlan los recursos de red ni de cortafuegos en Compute Engine.
Varios números de puerto para un puerto con nombre
Puede asignar varios puertos a cada nombre de servicio. También puedes asignar varios nombres de servicio a cada puerto.
Ten en cuenta los siguientes puntos:
- El tráfico se equilibra entre todos los puertos que tengan el mismo nombre.
- Un servicio de backend determinado solo puede reenviar tráfico a un puerto con nombre a la vez.
Si usas varios números de puerto para un puerto con nombre, todos los puertos deben ser de la misma aplicación.
Por ejemplo,
http:80,http:8080
funciona, perohttp:80,http:443
no funciona porque el puerto 80 no suele admitir TLS.
Puedes asignar varios puertos identificados a un grupo de instancias. Para ilustrarlo, consideremos un servicio de backend de ejemplo que se suscribe al puerto con nombre
http-port
y que tiene dos grupos de instancias de backend:instance-group-a
con un puerto denominadohttp-port:80
instance-group-b
con un puerto denominadohttp-port:79
Este servicio de backend envía tráfico al puerto 80 para las VMs de
instance-group-a
y al puerto 79 para las VMs deinstance-group-b
.Si añades el mismo grupo de instancias a varios servicios de backend (para varios balanceadores de carga) y el grupo de instancias sirve diferentes puertos en cada balanceador de carga, no añadas todos los números de puerto a un único puerto con nombre. En su lugar, crea un puerto con nombre único y asígnalo a un conjunto de puertos que debe usar cada servicio de backend.
Por ejemplo, supongamos que tienes tres aplicaciones, cada una con su propio balanceador 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 de backend usan un grupo de instancias común, asigna los puertos con nombre de este grupo de instancias como[app1:81, app2:82, app3:83]
.Puertos con nombre y comprobaciones del estado
Para que un puerto con nombre y varios números de puerto en un servicio de backend funcione en un balanceador de carga de aplicaciones externo o interno, la comprobación del estado debe tener la marca
--use-serving-port
en lugar de un número de puerto específico. Esta opción no está disponible en la consola Google Cloud . Para definir--use-serving-port
, debes usar Google Cloud CLI o la API.Por ejemplo, supongamos que tiene una aplicación que balancea la carga del tráfico en tres puertos diferentes (81, 82 y 83) en el mismo servicio de backend con un solo grupo de instancias. Puedes asignar los puertos de este grupo de instancias como
[app:81, 82, 83]
. La comprobación del estado de este caso debe tener la marca--use-serving-port
.Para obtener más información, consulta la documentación sobre las comprobaciones del estado del balanceo de carga.
Puertos con nombre y reglas de cortafuegos
Los puertos con nombre no crean ni modifican Google Cloud reglas de firewall. Para permitir el tráfico a las VMs de backend, debes crear las reglas de cortafuegos necesarias.
Puertos con nombre y servicios de backend
Además de configurar el grupo de instancias, también debes configurar el servicio de backend. Por ejemplo, supongamos que asignas el nombre
my-service-name
y el puerto8888
a un puerto con nombre de un grupo de instancias:gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
A continuación, debes hacer referencia al puerto con nombre en la configuración del servicio de backend con el
--port-name
del servicio de backend definido comomy-service-name
:gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Crear puertos con nombre
Consola
- En la consola, ve a la página Grupos de instancias. Google Cloud
- Haz clic en el nombre del grupo de instancias en el que quieras especificar los puertos con nombre. Se abrirá una página con las propiedades del grupo de instancias.
- Haz clic en Editar para modificar este grupo de instancias administrado.
- En la sección Asignación de puertos, haz clic en Añadir puerto e introduce el nombre del puerto y los números de puerto que quieras asociar a ese nombre. Si necesitas más entradas, vuelve a hacer clic en Añadir puerto.
- Haga clic en Guardar para guardar los cambios y aplicar los puertos con nombre a las instancias del grupo de instancias gestionado.
gcloud
En los grupos de instancias gestionados, define uno o varios puertos con nombre mediante el comando
instance-groups managed set-named-ports
. En el caso de los grupos sin gestionar, usa 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 a cada servicio, crea más de una entrada para cada nombre o puerto. Por ejemplo, si los puertos
10
,20
y80
son para la misma aplicación, puedes asignarname1
a todos esos puertos. Además, puedes asignar dos nombres,name2
yname3
, al puerto8080
. Por último, 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
Consulta las asignaciones de puertos con nombre de un grupo de instancias gestionado con 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
REST
La API
instanceGroupManagers
no ofrece el método de APIsetNamedPorts
. En su lugar, usa la APIinstanceGroups
para realizar esta tarea.Crea una solicitud a la API
instanceGroups
e incluye el nombre del grupo de instancias. Obtén el valorfingerprint
actual del grupo de instancias consultando información sobre un grupo específico. Incluyafingerprint
y uno o varios 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, puedes asignarname1
a todos esos puertos. Además, puedes asignar dos nombres,name2
yname3
, a la portabilidad8080
. Por último, 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, crea varias entradas para ese nombre de servicio. Por ejemplo, puedes asignar los puertos
10
,20
y80
aname1
. También debes asignar 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 gestionado, crea una solicitud
GET
que apunte al grupo:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
Siguientes pasos
- Prueba el tutorial Usar el balanceo de carga con aplicaciones de alta disponibilidad.
- Crea una plantilla de instancia que puedas usar en un grupo de instancias gestionado.
- Crea un grupo de instancias gestionado regional.
- Habilita la reparación automática en tu grupo de instancias gestionado.
- Habilita el autoescalado en tu grupo de instancias gestionado.
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-09-11 (UTC).
-