Después de que hayas creado un grupo de instancias administrado (MIG), te recomendamos agregar o quitar VMs en ese grupo para satisfacer las necesidades de tu carga de trabajo. Si alcanzaste el valor predeterminadolimit para conocer la cantidad máxima de VMs que puedes agregar a un MIG y necesitas más VMs, puedes aumentar el límite de tamaño del MIG
Para agregar o quitar VM en un MIG, puedes hacer lo siguiente:
- Agregar o quitar de forma automática las VM mediante la configuración del tamaño objetivo del MIG:
- Utilizar el ajuste de escala automático para aplicaciones sin estado
- Establecer manualmente el tamaño del MIG
- Agregar, quitar o abandonar de forma manual instancias específicas:
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud .
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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
-
Establece el tamaño objetivo del grupo
Puedes configurar el tamaño objetivo de un MIG de forma automática mediante un escalador automático o configurarlo de forma manual.
Agrega y quita VMs de forma automática en un MIG
Puedes configurar los grupos de instancias administrados para que agreguen o quiten VMs de forma automática en función de las cargas de trabajo. Las aplicaciones pueden manejar fácilmente los aumentos de tráfico, y puedes reducir los costos cuando se necesiten menos recursos de procesamiento. Para comenzar a escalar los grupos de instancias administrados, consulta Crea un MIG con ajuste de escala automático.
Si quieres obtener más información, consulta Ajuste de escala automático para grupos de instancias.
Configura el tamaño de un MIG de forma manual
Si un grupo de instancias administrado aún no se configuró para que escale de forma automática, puedes cambiar el tamaño del grupo manualmente para cambiar la cantidad de instancias. Si aumentas el tamaño, el grupo de instancias administrado usa la plantilla de instancias actual para agregar instancias nuevas. Si disminuyes el tamaño, el grupo de instancias administrado borra las VM. El grupo borra las instancias con un currentAction
de DELETING
, CREATING
y RECREATING
antes de borrar las instancias en ejecución sin acciones programadas.
Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.
Permisos necesarios para esta tarea
Para hacer esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.update
en el grupo de instancias administrado
En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias donde quieres cambiar el tamaño.
Haz clic en Editar para modificar este grupo de instancias administrado.
En Cantidad de instancias, especifica la cantidad que quieres incluir en el grupo de instancias administrado. Si el ajuste de escala automático está habilitado, el grupo agrega o quita instancias de forma automática, según sea necesario. Sin embargo, puedes cambiar los valores en Cantidad mínima de instancias y Cantidad máxima de instancias para ajustar de forma indirecta el tamaño del grupo mediante el escalador automático.
Haz clic en Guardar para aplicar la plantilla nueva.
Usa el comando resize
.
gcloud compute instance-groups managed resizeINSTANCE_GROUP_NAME \ --sizeNEW_SIZE \ --zoneZONE
Llama al método resize
para un
recurso de MIG
zonal
o
regional. Especifica el tamaño del grupo de instancias nuevo como parámetro.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers/INSTANCE_GROUP_NAME /resize?size=NEW_SIZE
Si el grupo de instancias es regional, reemplaza zones/ZONE
por regions/REGION
.
Luego de que realizas una solicitud para cambiar el tamaño de un grupo de instancias administrado, las VM se inician o se detienen en cuanto el sistema puede aprovisionarlas o borrarlas. Este proceso puede tomar un tiempo significativo en función de la cantidad de instancias en el grupo. Verifica el estado de las instancias en el grupo de instancias administrado.
Inhabilita el modo de reintentos de creación durante el cambio de tamaño
De forma predeterminada, si la creación inicial de una instancia de VM falla, el grupo de instancias administrado seguirá intentando crearla hasta tener éxito. Sin embargo, si no deseas usar el modo de reintentos de creación automáticos, puedes inhabilitarlo cuando cambies el tamaño del grupo de instancias. En este modo, el grupo de instancias administrado intenta crear todas las instancias solo una vez. Si hay un error durante la creación de una instancia, el grupo de instancias administrado la descarta, la quita de la lista de instancias administradas del grupo y disminuye su tamaño de destino.
Este modo solo se aplica durante el primer intento de creación de una VM. Si una VM se crea de forma correcta mientras este modo está habilitado, la VM se comportará de la misma manera que las que se crearon con una solicitud normal de cambio de tamaño. En particular, si una VM en ejecución se cierra de forma inesperada más adelante, y es necesario volver a crearla, este modo no afecta el comportamiento de recreación.
Inhabilitar el modo de reintentos de creación es útil en situaciones en las que los sistemas crean de forma automática grupos de VM que no requieren una cantidad exacta de VM. Es posible que prefieras estabilizar con rapidez el tamaño del grupo de instancias administrado y ser flexible en cuanto a la cantidad de VM del grupo, en lugar de esperar de manera indefinida hasta que se creen todas las instancias solicitadas, lo que podría retrasarse de forma temporal o permanente debido a errores de cuota o a otros problemas no relacionados.
Limitaciones
- No puedes inhabilitar los reintentos de creación de un MIG regional con una forma de distribución objetivo
EVEN
. - Para los MIG regionales con una forma de distribución objetivo
BALANCED
oANY_SINGLE_ZONE
, debes inhabilitar la redistribución proactiva de instancias antes de inhabilitar el modo de reintentos de creación. - No puedes inhabilitar los reintentos de creación de los MIG con ajuste de escala automático.
Para cambiar el tamaño de un grupo de instancias administrado cuando el modo de reintentos de creación está inhabilitado, usa Google Cloud CLI o REST.
Permisos necesarios para esta tarea
Para hacer esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.update
en el grupo de instancias administrado
Usa el comando resize
beta con la marca --no-creation-retries
.
gcloud beta compute instance-groups managed resizeINSTANCE_GROUP_NAME \ --sizeNEW_SIZE \ --no-creation-retries \ [--regionREGION | --zoneZONE ]
Reemplaza lo siguiente:
INSTANCE_GROUP_NAME
: Es el nombre del MIG cuyo tamaño deseas cambiar.NEW_SIZE
: Es la cantidad de instancias de ejecución en el grupo de instancias administrado.ZONE
: Para los MIG zonales, la zona en la que se encuentra el MIG.REGION
: Para los MIG regionales, la región en la que se encuentra el MIG.
Para un MIG zonal, usa el método instanceGroupManagers.resizeAdvanced
beta o, para un MIG regional, usa el método regionInstanceGroupManagers.resizeAdvanced
beta.
Especifica el tamaño del grupo nuevo y el campo noCreationRetries
en el cuerpo de la solicitud.
Por ejemplo, realiza la siguiente llamada para cambiar el tamaño de un MIG zonal con el modo de reintentos de creación inhabilitado.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /instanceGroupManagers/INSTANCE_GROUP_NAME /resizeAdvanced { "targetSize":NEW_SIZE , "noCreationRetries": true }
Reemplaza lo siguiente:
PROJECT_ID
: ID del proyectoZONE
: zona en la que se encuentra el MIG. En un MIG regional, reemplazazones/ZONE
porregions/REGION
y especifica la región. Para obtener más información, consulta Acerca de los MIG regionales.INSTANCE_GROUP_NAME
: Es el nombre del MIG cuyo tamaño deseas cambiar.NEW_SIZE
: Es la cantidad de instancias en ejecución en el grupo de instancias administrado.Puedes usar el método
listManagedInstances
para ver qué instancias se están creando y en qué modo. Cuando el modo de reintentos de creación está inhabilitado, las instancias que creas tienen unacurrentAction
deCREATING_WITHOUT_RETRIES
.
Agrega, quita o abandona instancias específicas
Crea instancias con nombres específicos en MIG
Si tienes un sistema que depende de nombres específicos, puedes agregar VMs con esos nombres a un MIG existente.
Los nombres que asignes a estas instancias administradas persisten si el MIG vuelve a crear la VM. Para obtener más información sobre cómo preservar el estado de las instancias de un MIG, consulta MIG con estado.
Limitaciones
Si creas instancias con nombres específicos:
- El ajuste de escala automático debe estar desactivado durante el proceso de creación de la instancia.
- Debes establecer la política de actualización del MIG como oportunista.
- Si actualizas un MIG regional, haz lo siguiente:
- Debes inhabilitar la redistribución proactiva de instancias.
- No puedes elegir la zona en la que se creará la VM.
- No puedes usar nombres de instancias de VM duplicados dentro de un proyecto.
Puedes usar la CLI de gcloud o REST para agregar VMs con nombres específicos a un MIG existente.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.update
en el grupo de instancias administrado
Usa el comando instance-groups managed create-instance
.
gcloud compute instance-groups managed create-instanceINSTANCE_GROUP_NAME \ --instanceINSTANCE_NAME \ [--regionREGION | --zoneZONE ]
Reemplaza lo siguiente:
- INSTANCE_GROUP_NAME es el nombre del MIG regional o zonal al que se agrega una instancia nueva.
- INSTANCE_NAME es el nombre que deseas asignar a la instancia nueva.
Realiza una solicitud POST al método regionInstanceGroupManagers.createInstances
. Para un grupo de instancias administrado zonal, usa el método instanceGroupManagers.createInstances
. En el cuerpo de la solicitud, incluye el campo instances
con nombres para una o más instancias.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME /createInstances { "instances": [ { "name": "INSTANCE_NAME_1 " }, { "name": "INSTANCE_NAME_2 " } ] }
Borra instancias específicas de un grupo
Puedes borrar instancias de VM individuales de un grupo de instancias administrado. Cuando se borran instancias, se reduce el targetSize
especificado del grupo de instancias y se quitan las VM de los grupos de destino de los que forman parte.
Borrar instancias de un grupo de instancias administrado no cambia ninguna configuración del escalador automático especificada. Si borras instancias de un grupo de instancias administrado, es posible que el escalador automático detecte un aumento en la carga de trabajo en las demás instancias y aumente el tamaño del grupo a su nivel anterior. Para evitar esto, detén el escalador automático antes de intentar borrar las instancias.
Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.update
en el grupo de instancias administrado
En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias en el que quieres borrar las instancias individuales. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.
En la sección Miembros de la lista de instancias, elige una o más instancias que quieres borrar.
Haz clic en Borrar instancia. Se borran las instancias seleccionadas.
Para borrar una instancia con la CLI de , usa el comando instance-groups managed delete-instances
:
gcloud compute instance-groups managed delete-instancesINSTANCE_GROUP_NAME \ --instancesINSTANCE_NAME_1 ,INSTANCE_NAME_2 \ [--regionREGION | --zoneZONE ]
El comando muestra el estado de la operación por instancia:
- Se muestra
SUCCESS
si la CLI de gcloud borró la instancia. - Se muestra
FAIL
para todas las instancias si alguna de las instancias que especificas en la solicitud no es miembro del grupo, si algún miembro ya se está borrando o abandonando, o si la solicitud falla por cualquier otra. SKIPPED
solo se muestra si usas la marca--skip-instances-on-validation-error
y la instancia no es miembro del grupo o ya se está borrando o abandonando.MEMBER_NOT_FOUND
solo se muestra para los grupos regionales cuando la CLI de gcloud no pudo resolver la zona a partir del nombre de la instancia.
Si prevés que tu solicitud de eliminación podría entrar en conflicto con operaciones simultáneas, usa la marca --skip-instances-on-validation-error
. Esta marca especifica si la solicitud debe continuar incluso si esta incluye instancias que no son miembros del grupo o que ya se están borrando o abandonando, por ejemplo, instancias que un escalador automático está borrando. De forma predeterminada, si omites esta marca y una instancia de este tipo se especifica en la solicitud, la operación falla. La operación siempre falla si la solicitud contiene un nombre de instancia con formato erróneo o una referencia a una instancia que existe en una zona o región distinta de la zona o región del grupo.
Por ejemplo, con el siguiente comando se solicita la eliminación de cuatro instancias, pero tres de ellas ya no están en el grupo:
gcloud compute instance-groups managed delete-instances example-mig \ --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \ --region=us-central1 \ --skip-instances-on-validation-error
En este ejemplo, tres instancias no pasaron la validación, por lo que se omitieron, mientras que example-instance-3
se borró:
Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig]. PROJECT ZONE INSTANCE STATUS VALIDATION_ERROR example-project us-central1-a example-instance-1 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-1 that was already deleted. example-project us-central1-a example-instance-2 SKIPPED Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-2 that was already abandoned. example-project us-central1-a example-instance-3 SUCCESS example-project us-central1-a example-instance-4 SKIPPED Cannot find instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-4.
Si omites la marca --skip-instances-on-validation-error
y si alguna instancia no pasa la validación, no se borrará ninguna instancia:
gcloud compute instance-groups managed delete-instances example-mig \
--instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \
--region=us-central1
Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig].
PROJECT ZONE INSTANCE STATUS
example-project us-central1-a example-instance-1 FAIL
example-project us-central1-a example-instance-2 FAIL
example-project us-central1-a example-instance-3 FAIL
example-project us-central1-a example-instance-4 FAIL
Realiza una solicitud POST al método regionInstanceGroupManagers.deleteInstances
. Para un grupo de instancias administrado zonal, usa el método instanceGroupManagers.deleteInstances
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME /deleteInstances { "instances": [ "zones/ZONE /instances/INSTANCE_NAME_1 ", "zones/ZONE /instances/INSTANCE_NAME_2 " ] }
Si prevés que tu solicitud de eliminación podría entrar en conflicto con operaciones simultáneas, usa el campo skipInstancesOnValidationError
. Este campo especifica si la solicitud debe continuar incluso si esta incluye instancias que no son miembros del grupo o que ya se están borrando o abandonando, por ejemplo, instancias que un escalador automático está borrando. De forma predeterminada, si omites esta marca y una instancia de este tipo se especifica en la solicitud, la operación falla. La operación siempre falla si la solicitud contiene un nombre de instancia con formato erróneo o una referencia a una instancia que existe en una zona o región distinta de la zona o región del grupo.
Por ejemplo, la siguiente solicitud para borrar 2 instancias tendrá éxito incluso si una de las instancias ya se borró o se está borrando:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME /deleteInstances { "instances": [ "zones/ZONE /instances/INSTANCE_NAME_1 ", "zones/ZONE /instances/INSTANCE_NAME_2 " ], "skipInstancesOnValidationError": true }
Puedes ver las instancias que se omitieron en la operación si visualizas la operación. Para los MIG regionales, usa el método regionOperations.get
.
Para los MIG zonales, usa el método zoneOperations.get
.
Las advertencias se muestran en el campo de advertencia de la operación.
Después de realizar una solicitud para borrar instancias en un grupo de instancias administrado, las instancias se detienen en cuanto el sistema puede borrarlas. Este proceso puede tardar una cantidad de tiempo significativa dependiendo de la cantidad de instancias que borres del grupo. Verifica el estado del grupo o verifica el estado de las instancias administradas.
Abandona instancias de un MIG
Puedes separar una instancia de VM de un grupo de instancias administrado para depurar con mayor facilidad los problemas de instancias individuales sin afectar al grupo en su totalidad. Cuando se descarta una instancia de un grupo, también se la quita de los balanceadores de cargas asignados al grupo de instancias administrado. No se quitan los grupos de destino asignados de forma manual a instancias individuales específicas.
No puedes volver a agregar una instancia de VM abandonada al grupo.
Descartar instancias reduce el targetSize
especificado del grupo de instancias, pero no cambia ninguna configuración del escalador automático. Los grupos de instancias administrados con un escalador automático continúan agregando o quitando instancias de forma automática según sea necesario. En el caso de un MIG regional con ajuste de escala automático configurado en modo ONLY_SCALE_OUT
, si abandonas una instancia de VM para reducir el tamaño de destino del MIG al
tamaño recomendado del escalador automático, entonces,
el escalador automático puede crear una instancia de VM nueva en la misma zona de la VM
abandonada. En esos casos, para evitar la creación de una nueva instancia de VM, intenta descartar la instancia de VM
desde una zona diferente.
Si el grupo forma parte de un servicio de backend en el que el vaciado de conexiones está habilitado, pueden transcurrir hasta 60 segundos más después de que se complete el vaciado de conexiones hasta que se quite o se borre la instancia de VM.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.update
en el grupo de instancias administrado
En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias del que quieres quitar las instancias. Se abrirá una página con las propiedades del grupo de instancias y una lista de instancias incluidas en el grupo.
En la sección Miembros de la lista de instancias, elige una o más instancias que quieres quitar del grupo.
Haz clic en Quitar del grupo. Las instancias seleccionadas abandonan el grupo, pero siguen en ejecución fuera de este.
Para quitar una instancia del grupo de instancias sin borrar la VM, usa el comando instance-groups managed abandon-instances
.
gcloud compute instance-groups managed abandon-instancesINSTANCE_GROUP_NAME \ --instancesINSTANCE_NAME_1 ,INSTANCE_NAME_2 \ [--regionREGION | --zoneZONE ]
Realiza una solicitud POST al método regionInstanceGroupManagers.abandonInstances
. Para un grupo de instancias administrado zonal, usa el método instanceGroupManagers.abandonInstances
.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME /abandonInstances { "instances": [ "zones/ZONE /instances/INSTANCE_NAME_1 ", "zones/ZONE /instances/INSTANCE_NAME_2 " ] }
Después de realizar una solicitud para descartar instancias de un grupo de instancias administrado, el grupo las quita lo antes posible. Verifica el estado del grupo o verifica el estado de las instancias administradas.
Aumenta el límite de tamaño del grupo
De forma predeterminada, el límite de tamaño de un MIG zonal es de 1,000 VMs y el de un MIG regional es de 2,000 VMs. Puedes aumentar estos límites a 2,000 VMs para un MIG zonal y 4,000 VMs para un MIG regional.
Para aumentar los límites, configura el campo listManagedInstancesResults
del grupo como PAGINATED
. Si aún necesitas más VMs en el grupo, crea varios MIG o comunícate con el equipo de asistencia.
En la consola de Google Cloud, ve a la página Grupos de instancias.
En la columna Nombre de la lista, haz clic en el nombre del grupo de instancias cuyo límite de tamaño quieres aumentar.
Haz clic en Editar para modificar el grupo de instancias.
Para expandir la sección de configuración avanzada, haz clic en Mostrar configuración avanzada.
En Resultados de llamadas a la API de lista de instancias administradas, elige la opción Paginados.
Haz clic en Guardar para aplicar los cambios.
Para un MIG existente, usa el comando update
:
gcloud compute instance-groups managed updateINSTANCE_GROUP_NAME \ --list-managed-instances-results=PAGINATED
Para un MIG nuevo, usa el comando create
:
gcloud compute instance-groups managed createINSTANCE_GROUP_NAME \ --templateINSTANCE_TEMPLATE \ --sizeSIZE \ --list-managed-instances-results=PAGINATED
Para aumentar el límite de tamaño de un MIG, establece el argumento list_managed_instances_results
en PAGINATED
.
En el siguiente ejemplo, se aumenta el límite de tamaño de un MIG zonal. Para obtener más información sobre el recurso usado en la muestra, consulta recurso google_compute_instance_group_manager
.
Para un MIG regional, usa el método google_compute_region_instance_group_manager
.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Para un MIG zonal, usa el método instanceGroupManagers.patch
o, para un MIG regional, usa el
método regionInstanceGroupManagers.patch
. Por
ejemplo:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /region/REGION /regionInstanceGroupManagers/INSTANCE_GROUP_NAME { "listManagedInstancesResults": "PAGINATED", }
Para un nuevo MIG zonal, usa el método instanceGroupManagers.insert
o para un MIG regional, usa el método regionInstanceGroupManagers.insert
.
Si quieres volver a los resultados de lista sin página, también debes volver al límite de tamaño predeterminado del grupo. Para revertir, primero asegúrate de que el grupo no exceda su límite de tamaño predeterminado y, luego, establece el campo listManagedInstancesResults
en PAGELESS
.
¿Qué sigue?
- Obtén información sobre cómo trabajar con instancias administradas, por ejemplo, para borrar, descartar y volver a crear instancias administradas.
- Obtén información sobre los grupos de instancias administrados y las instancias administradas.
- Soluciona problemas de grupos de instancias administrados.