Este documento describe cómo aplicar automáticamente actualizaciones de configuración a las instancias de máquinas virtuales (VM) en un grupo de instancias administrado (MIG) .
Compute Engine mantiene las VM en un MIG según los componentes de configuración que usas: plantilla de instancia, configuración opcional de todas las instancias y configuración con estado opcional.
Cada vez que actualizas la configuración de VM de un MIG cambiando esos componentes, Compute Engine aplica automáticamente tu configuración actualizada a las nuevas VM que se agregan al grupo.
Para aplicar una configuración actualizada a las máquinas virtuales existentes, puede configurar una actualización automática, también conocida como tipo de actualización proactiva . El MIG implementa automáticamente actualizaciones de configuración para todas o para un subconjunto de las máquinas virtuales del grupo. Puede controlar la velocidad de implementación, el nivel de interrupción de su servicio y, mediante una actualización canaria, la cantidad de instancias que el MIG actualiza con la nueva configuración. Después de especificar la nueva configuración, no es necesario proporcionar información adicional y la actualización se completa por sí sola.
Alternativamente, si desea aplicar selectivamente una nueva configuración solo a instancias nuevas o específicas en un MIG, consulte Aplicar selectivamente actualizaciones de configuración de VM en un MIG . Para ayudarle a decidir, consulte Métodos para aplicar una nueva configuración a máquinas virtuales existentes .
Antes de comenzar
- Si está actualizando un MIG con estado, revise Aplicar, ver y eliminar la configuración con estado en MIG .
- 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.
- Si tiene un MIG con estado y desea utilizar actualizaciones continuas automáticas, debe conservar los nombres de las instancias al reemplazarlas o, de manera equivalente, configurar el método de reemplazo en
RECREATE
. Las actualizaciones se basan en la intención. Cuando realiza la solicitud de actualización inicial, la API de Compute Engine devuelve una respuesta exitosa para confirmar que la solicitud es válida, pero eso no indica que la actualización se haya realizado correctamente. Debe verificar el estado del grupo para determinar si su actualización se implementó exitosamente.
La API del actualizador de grupos de instancias es una API declarativa. La API espera una solicitud para especificar la configuración posterior a la actualización deseada del MIG, en lugar de una llamada de función explícita.
Las actualizaciones automáticas admiten hasta dos versiones de plantillas de instancias en su MIG. Esto significa que puede especificar dos versiones diferentes de plantillas de instancias para su grupo, lo cual es útil para realizar actualizaciones canarias .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Seleccione el MIG que desea actualizar.
Haga clic en Actualizar máquinas virtuales .
En Nueva plantilla , haga clic en la lista desplegable y seleccione la nueva plantilla para actualizar. El tamaño objetivo se establece automáticamente en 100% , lo que indica que todas sus instancias se actualizarán.
En Configuración de actualización , expanda el menú de selección y seleccione Automática como tipo de actualización . Deje los valores predeterminados para las otras opciones.
Haga clic en Actualizar máquinas virtuales para iniciar la actualización.
-
INSTANCE_GROUP_NAME
: el nombre del MIG -
INSTANCE_TEMPLATE_NAME
: la nueva plantilla de instancia -
ZONE
: para MIG zonales, proporcione la zona -
REGION
: para MIG regionales, proporcione la región - Actualizaciones automáticas o proactivas
- Actualizaciones selectivas u oportunistas
- El estado de la instancia es
RUNNING
. - Si la verificación de salud está habilitada, cuando la verificación de salud devuelve
HEALTHY
. - Espera hasta el período de tiempo especificado por el valor
autohealingPolicies.initialDelaySec
del MIG para que la verificación de estado regrese comoHEALTHY
. - Luego, espera el período de tiempo especificado por
minReadySec
. SUBSTITUTE
(predeterminado). Reemplaza las instancias de VM más rápido durante las actualizaciones porque se crean nuevas VM antes de que se apaguen las antiguas. Sin embargo, los nombres de las instancias no se conservan porque las instancias antiguas todavía los utilizan.RECREATE
. Conserva los nombres de las instancias mediante una actualización. Compute Engine publica el nombre de la instancia cuando se apaga la VM anterior. Luego Compute Engine crea una nueva instancia con el mismo nombre. Para usar este modo, debe configurarmaxSurge
en0
.- En la consola de Google Cloud, vaya a la página de grupos de instancias .
- Selecciona el grupo de instancias administrado que deseas actualizar.
- Haga clic en Actualizar máquinas virtuales .
- Haga clic en Agregar una segunda plantilla y elija la nueva plantilla de instancia para canary.
- En Tamaño objetivo , ingrese el porcentaje o el número fijo de instancias que desea usar para controlar la nueva plantilla de instancias.
- Si lo deseas, puedes configurar otras opciones de actualización.
- Haga clic en Actualizar máquinas virtuales para iniciar la actualización.
-
INSTANCE_GROUP_NAME
: el nombre del grupo de instancias. -
CURRENT_INSTANCE_TEMPLATE_NAME
: la plantilla de instancia que el grupo de instancias está ejecutando actualmente. -
NEW_TEMPLATE
: la nueva plantilla que desea canary. -
SIZE
: el número o porcentaje de instancias a las que desea aplicar esta actualización. Debe aplicar la propiedadtarget-size
a la plantilla--canary-version
. Solo puede establecer un porcentaje si el grupo contiene 10 o más instancias. -
ZONE
: para MIG zonales, proporcione la zona . -
REGION
: para MIG regionales, proporcione la región. -
NEW_TEMPLATE
: el nombre de la nueva plantilla que desea canary. -
NUMBER|PERCENTAGE
: el número fijo o porcentaje de instancias para canary esta actualización. Solo puede establecer un porcentaje si el grupo contiene 10 o más instancias. En caso contrario, proporcione un número fijo. -
CURRENT_INSTANCE_TEMPLATE_NAME
: el nombre de la plantilla de instancia actual que está ejecutando el grupo. - En la consola de Google Cloud, vaya a la página de grupos de instancias .
- Selecciona el grupo de instancias administrado que deseas actualizar.
- Haga clic en Actualizar máquinas virtuales .
- En Nueva plantilla , actualice el tamaño objetivo de la plantilla canary al 100% para avanzar la plantilla a todas sus instancias. Alternativamente, puede reemplazar la plantilla principal con la plantilla canary y eliminar el segundo campo de plantilla.
- Haga clic en Actualizar máquinas virtuales para iniciar la actualización.
- Para verificar si todas las máquinas virtuales alcanzaron su versión de plantilla de destino, vea el estado del grupo .
- Para verificar que las máquinas virtuales específicas hayan alcanzado su versión de plantilla de destino, vea las acciones actuales en las instancias .
- Para MIG con estado, consulte también Verificar si se han aplicado configuraciones por instancia .
- En la consola de Google Cloud, vaya a la página de grupos de instancias .
- Seleccione el grupo de instancias administrado que desea monitorear. La página de descripción general del grupo muestra la plantilla que utiliza cada instancia.
- Para ver los detalles, haga clic en la pestaña Detalles .
- En Plantilla de instancia , puede ver el número actual y objetivo de instancias para cada plantilla de instancia, así como los parámetros de actualización.
status.versionTarget.isReached
establecido entrue
indica que todas las instancias de VM se han creado o se están creando utilizando la versión de destino.status.versionTarget.isReached
establecido enfalse
indica que al menos una VM aún no está usando la versión de destino. O, en el caso de una actualización canary,false
indica que la cantidad de máquinas virtuales que usan una versión de destino no coincide con su tamaño de destino.- Ninguna de las instancias en el MIG está experimentando ningún tipo de cambio y la
currentAction
para todas las instancias esNONE
. - No hay cambios pendientes para instancias en el MIG.
- El MIG en sí no se modifica.
- Realiza una solicitud para implementar una nueva plantilla de instancia.
- Realiza una solicitud para crear, eliminar, cambiar el tamaño o actualizar instancias en el MIG.
- Un escalador automático solicita cambiar el tamaño del MIG.
- Un recurso de reparación automática está reemplazando una o más instancias en mal estado en el MIG.
- En un MIG regional, algunas de las instancias se están redistribuyendo .
-
ABANDONING
. La instancia se está eliminando del MIG. -
CREATING
. La instancia está en proceso de creación. -
CREATING_WITHOUT_RETRIES
. La instancia se está creando sin reintentos; Si la instancia no se crea en el primer intento, el MIG no intenta reemplazar la instancia nuevamente. -
DELETING
. La instancia está en proceso de eliminación. -
RECREATING
. La instancia está siendo reemplazada. -
REFRESHING
. La instancia se elimina de sus grupos de destino actuales y se vuelve a agregar a la lista de grupos de destino actuales (esta lista puede ser la misma o diferente de los grupos de destino existentes). -
RESTARTING
. La instancia está en proceso de reiniciarse utilizando los métodosstop
estart
. -
RESUMING
. La instancia se encuentra en proceso de reanudación luego de haber sido suspendida. -
STARTING
. La instancia está en proceso de iniciarse después de haber sido detenida. -
STOPPING
. La instancia está siendo detenida. -
SUSPENDING
. La instancia queda suspendida. -
VERIFYING
. La instancia ha sido creada y está en proceso de verificación. -
NONE
. No se están realizando acciones en la instancia. Realice una solicitud para determinar cuántas instancias se han actualizado:
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
La CLI de gcloud devuelve una respuesta que incluye una lista de instancias del grupo y sus estados actuales:
NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR vm-instances-9pk4 us-central1-f RUNNING HEALTHY NONE example-new-template vm-instances-j1h8 us-central1-f RUNNING HEALTHY NONE example-old-template vm-instances-ngod us-central1-f STAGING UNKNOWN CREATING example-new-template
En este ejemplo, ya se han actualizado dos instancias.
A continuación, realice una solicitud para realizar una nueva actualización, pero pase la cantidad de instancias que ya se han actualizado como tamaño objetivo:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version template=OLD_INSTANCE_TEMPLATE_NAME \ --canary-version template=NEW_INSTANCE_TEMPLATE_NAME,target-size=2 \ [--zone=ZONE | --region=REGION]
Para el Actualizador, esta actualización parece completa, por lo que no se actualizan otras instancias, lo que detiene efectivamente la actualización.
- Inicie una actualización canary en lugar de una actualización completa.
- Establezca un valor
minReadySec
grande. Establecer este valor hace que el actualizador espere esta cantidad de segundos antes de considerar que la instancia se actualizó correctamente y pasar a la siguiente instancia. - Habilite la verificación de estado para que el Actualizador espere a que se inicie su aplicación e informe una señal de buen estado antes de considerar que la instancia se actualizó exitosamente y pasar a la siguiente instancia.
- Establezca valores bajos
maxUnavailable
ymaxSurge
. Esto garantiza que solo se actualice una cantidad mínima de instancias a la vez. - Actualice instancias de forma selectiva en un MIG en lugar de utilizar una actualización automática.
Acción mínima : utilice esta opción para minimizar la interrupción tanto como sea posible o aplicar una acción más disruptiva de la necesaria.
- Para limitar las interrupciones tanto como sea posible, establezca la acción mínima en
REFRESH
. Si su actualización requiere una acción más disruptiva, Compute Engine realiza la acción necesaria para ejecutar la actualización. - Para aplicar una acción más disruptiva de lo estrictamente necesario, establezca la acción mínima en
RESTART
oREPLACE
. Por ejemplo, Compute Engine no necesita reiniciar una VM para cambiar sus metadatos. Pero si su aplicación lee los metadatos de la instancia solo cuando se reinicia una VM, puede configurar la acción mínima enRESTART
para detectar los cambios de metadatos.
- Para limitar las interrupciones tanto como sea posible, establezca la acción mínima en
Acción más disruptiva permitida : utilice esta opción para evitar una actualización si requiere más interrupciones de las que puede permitirse. Si su actualización requiere una acción más disruptiva que la que estableció con este indicador, la solicitud de actualización falla. Por ejemplo, si configura la acción permitida más disruptiva en
RESTART
, el intento de actualizar la imagen del disco de arranque falla porque esa actualización requiere el reemplazo de la instancia, una acción más disruptiva que un reinicio.- La acción mínima predeterminada es
REPLACE
. Si desea evitar interrupciones innecesarias, establezca la acción mínima para que sea menos disruptiva. - La acción predeterminada más disruptiva permitida es
REPLACE
. Si no puede tolerar dicha interrupción, establezca la acción permitida más disruptiva para que sea menos disruptiva. - Limpiar las filtraciones de memoria.
- Reinicie su aplicación para que pueda funcionar desde una máquina fresca.
- Aplique un reemplazo periódico como una mejor práctica para probar sus máquinas virtuales.
- Actualice la imagen del sistema operativo de su VM o vuelva a ejecutar los scripts de inicio para actualizar su software.
- En la consola de Google Cloud, vaya a la página de grupos de instancias .
- Seleccione el grupo de instancia administrado que tiene las máquinas virtuales que desea reiniciar o reemplazar.
- Haga clic en Reiniciar/Reemplazar VMS .
- En operación , seleccione Reiniciar o reemplazar .
- Si selecciona reiniciar , alterne los siguientes parámetros:
- Si selecciona reemplazar , haga lo siguiente:
- Elija si desea mantener los nombres de las instancias al reemplazar las instancias.
- Alternar los siguientes parámetros:
- Para iniciar la operación, haga clic en Reiniciar VMS o reemplace las máquinas virtuales .
-
maxUnavailable= NUMBER_OF_ZONES
-
maxSurge= NUMBER_OF_ZONES
Si especifica un porcentaje de instancias de VM para una actualización de Canary, el actualizador intenta distribuir las instancias de manera uniforme a través de las zonas. El resto se redondea hacia arriba o hacia abajo en cada zona, pero la diferencia total no es más de 1 VM de instancia por grupo. Por ejemplo, para un MIG con 10 instancias y un porcentaje de tamaño objetivo del 25%, la actualización se implementa a 2 a 3 instancias VM.
Si especifica un porcentaje de opciones de actualización como
maxSurge
ymaxUnavailable
, los porcentajes se redondean independientemente por zona.- Aprenda sobre la visualización de información sobre MIG e instancias administradas .
- Aprenda sobre la creación de plantillas de instancia .
- Aprenda a usar familias de imágenes y un reemplazo continuo para actualizar la imagen del sistema operativo en todas las máquinas virtuales en un MIG.
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 .
Limitaciones
Iniciar una actualización continua básica
Una actualización continua básica es una actualización que se aplica gradualmente a todas las instancias en un MIG hasta que todas las instancias se hayan actualizado a la última configuración prevista. La actualización continua omite automáticamente las instancias que ya están en su última configuración.
Puede controlar varios aspectos de una actualización continua, como cuántas instancias se pueden desconectar para la actualización, cuánto tiempo esperar entre instancias de actualización, si la nueva plantilla afecta a todas o solo a una parte de las instancias, etc.
A continuación se detallan cosas que debe tener en cuenta al realizar una actualización continua:
Para iniciar una actualización continua básica donde la actualización se aplica a todas las instancias del grupo, siga las instrucciones a continuación.
Consola
nube de gcloud
Utilice el comando
rolling-action start-update
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_NAME [--zone=ZONE | --region=REGION]
Reemplace lo siguiente:
DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal .Por ejemplo, para un MIG regional, la siguiente solicitud muestra la configuración mínima necesaria para actualizar automáticamente el 100 % de las instancias a la nueva plantilla de instancias.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "updatePolicy": { "type": "PROACTIVE" } }
Después de realizar una solicitud, puede monitorear la actualización para saber cuándo finaliza.
Para configuraciones avanzadas, incluya otras opciones de actualización. Si no especifica lo contrario, las opciones
maxSurge
ymaxUnavailable
son1
multiplicado por el número de zonas afectadas de forma predeterminada. Esto significa que solo 1 instancia se desconecta en cada zona afectada y el MIG crea solo 1 instancia adicional por zona durante la actualización.Configurar opciones para su actualización
Para actualizaciones más complejas, puede configurar opciones adicionales, como se describe en las siguientes secciones.
Tipo de actualización
Los grupos de instancias administrados admiten dos tipos de actualización:
Si desea aplicar actualizaciones automáticamente, establezca el tipo en proactivo .
Alternativamente, si una actualización automática es potencialmente demasiado perjudicial, puede optar por realizar una actualización oportunista . El MIG aplica una actualización oportunista solo cuando inicia manualmente la actualización en instancias seleccionadas o cuando se crean nuevas instancias. Se pueden crear nuevas instancias cuando usted u otro servicio, como un escalador automático, cambia el tamaño del MIG. Compute Engine no inicia activamente solicitudes para aplicar actualizaciones oportunistas en instancias existentes.
Para obtener más información sobre las actualizaciones automáticas y selectivas, consulte Métodos para aplicar una nueva configuración a las máquinas virtuales existentes .
Sobretensión máxima
Utilice la opción
maxSurge
para configurar cuántas instancias nuevas puede crear el MIG por encima de sutargetSize
durante una actualización automática. Por ejemplo, si configuramaxSurge
en 5, el MIG usa la nueva plantilla de instancia para crear hasta 5 instancias nuevas por encima de su tamaño objetivo. Establecer un valormaxSurge
más alto acelera la actualización, a costa de instancias adicionales, que se facturan de acuerdo con Compute Engine.hoja de precios .Puede especificar un número fijo o, si el grupo tiene 10 o más instancias, un porcentaje. Si establece un porcentaje, el Actualizador redondea el número de instancias si es necesario.
Si no establece el valor
maxSurge
, se utiliza el valor predeterminado. Para MIG zonales, el valor predeterminado paramaxSurge
es1
. Para MIG regionales, el valor predeterminado es el número de zonas asociadas con el grupo, de forma predeterminada3
.maxSurge
solo funciona si tiene suficiente cuota o recursos para soportar los recursos adicionales.Si su actualización no requiere que se reemplacen las máquinas virtuales, esta opción se ignora. Puede forzar el reemplazo de las máquinas virtuales durante una actualización configurando la opción de acción mínima .
Máximo no disponible
Utilice la opción
maxUnavailable
para configurar cuántas instancias no están disponibles en cualquier momento durante una actualización automática. Por ejemplo, si configuramaxUnavailable
en 5, solo se desconectan 5 instancias para actualizar a la vez. Utilice esta opción para controlar qué tan perjudicial es la actualización para su servicio y para controlar la velocidad a la que se implementa la actualización.Este número también incluye cualquier instancia que no esté disponible por otros motivos. Por ejemplo, si el grupo está en proceso de cambiar su tamaño , es posible que las instancias en medio de su creación no estén disponibles. Estas instancias cuentan para el número
maxUnavailable
.Puede especificar un número fijo o, si el grupo tiene 10 o más instancias, un porcentaje. Si establece un porcentaje, el Actualizador redondea hacia abajo el número de instancias, si es necesario.
Si no desea que ninguna máquina no esté disponible durante una actualización, establezca el valor
maxUnavailable
en0
y el valormaxSurge
en mayor que 0. Con esta configuración, Compute Engine elimina cada máquina antigua solo después de que se crea y ejecuta la nueva máquina de reemplazo.Si no establece el valor
maxUnavailable
, se utiliza el valor predeterminado. Para MIG zonales, el valor predeterminado es1
. Para MIG regionales, el valor predeterminado es el número de zonas asociadas con el grupo, de forma predeterminada3
.Tiempo mínimo de espera
Utilice la opción
minReadySec
para especificar la cantidad de tiempo que se debe esperar antes de considerar una instancia nueva o reiniciada como actualizada. Utilice esta opción para controlar la velocidad a la que se implementa la actualización automática. El cronómetro comienza cuando se cumplen las dos condiciones siguientes:Tenga en cuenta que para que la verificación de estado sea correcta, el Actualizador espera las siguientes condiciones:
Si la verificación de estado no devuelve
HEALTHY
dentro deinitialDelaySec
, entonces el actualizador declara que la instancia de VM no está en buen estado y potencialmente detiene la actualización. Mientras la instancia de VM espera la verificación durante el período de tiempoinitialDelaySec
yminReadySec
, lacurrentAction
de la instancia esVERIFYING
. Sin embargo, el estado de la instancia de VM subyacente sigue siendoRUNNING
.Si no hay comprobaciones de estado para el grupo, el temporizador se inicia cuando el estado de la instancia es
RUNNING
.El valor máximo para el campo
minReadySec
es 3600 segundos (1 hora).El siguiente diagrama muestra cómo las opciones de tamaño objetivo, máximo no disponible, aumento máximo y tiempo de espera mínimo afectan sus instancias. Para obtener más información sobre el tamaño de destino, consulte Actualizaciones canary .
Acción mínima
Utilice la opción de acción mínima para minimizar la interrupción tanto como sea posible o aplicar una acción más disruptiva de la estrictamente necesaria. Por ejemplo, Compute Engine no necesita reiniciar una VM para cambiar sus metadatos. Pero si su aplicación lee metadatos de instancia solo cuando se reinicia una máquina virtual, puede configurar la acción mínima para reiniciar para recoger los cambios de metadatos.
Si su actualización requiere una acción más disruptiva que la que estableció con este indicador, Compute Engine realiza la acción necesaria para ejecutar la actualización. Por ejemplo, si especifica un reinicio como acción mínima, el Actualizador intenta reiniciar las instancias para aplicar la actualización. Pero, si está cambiando el sistema operativo, lo cual no se puede hacer reiniciando la instancia, entonces el Actualizador reemplaza las instancias del grupo con nuevas instancias de VM.
Para obtener más información, incluidas opciones válidas, consulte Control del nivel de interrupción durante una actualización continua .
Acción más disruptiva permitida
Utilice la opción de acción permitida más disruptiva para evitar una actualización si requiere más interrupciones de las que puede permitirse. Si no se puede completar una actualización debido a esta configuración, la actualización falla y sus máquinas virtuales mantienen su configuración anterior.
Para obtener más información, consulte Control del nivel de interrupción durante una actualización continua .
Método de reemplazo
De forma predeterminada, cuando actualiza proactivamente un MIG, el grupo elimina sus instancias de VM y las intercambia con nuevas instancias con nuevos nombres. Si necesita conservar los nombres de sus instancias de VM, use la opción
replacementMethod
.Preservar los nombres de instancias existentes puede resultar útil si tiene aplicaciones o sistemas que dependen del uso de nombres de instancia específicos. Por ejemplo, algunas aplicaciones, como Memcached, dependen de nombres de instancias porque no tienen un servicio de descubrimiento; como resultado, cada vez que cambia el nombre de una instancia, la aplicación pierde la conexión con esa VM específica.
Para conservar los nombres de las instancias, configura el método de reemplazo en
RECREATE
en lugar deSUBSTITUTE
si actualizas el MIG con la CLI de gcloud o la API de Compute Engine. Alternativamente, si actualiza el MIG desde la consola de Google Cloud, seleccione la casilla Mantener nombres al reemplazar VM .Los valores válidos
replacementMethod
son:Para obtener más información, consulte Preservar nombres de instancias .
Ejemplos de actualizaciones adicionales
A continuación se muestran algunos ejemplos de línea de comandos con opciones de configuración comunes.
Realice una actualización continua de todas las instancias de VM, pero cree hasta 5 instancias nuevas por encima del tamaño objetivo a la vez.
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=5 \ [--zone=ZONE | --region=REGION]
Realice una actualización continua con un máximo de 3 máquinas no disponibles y un tiempo de espera mínimo de 3 minutos antes de marcar una nueva instancia como disponible
gcloud beta compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --min-ready=3m \ --max-unavailable=3 \ [--zone=ZONE | --region=REGION]
Realice una actualización continua de todas las instancias de VM, pero cree hasta un 10 % de instancias nuevas por encima del tamaño objetivo a la vez.
Por ejemplo, si tiene 1000 instancias y ejecuta el siguiente comando, el Actualizador crea hasta 100 instancias antes de comenzar a eliminar instancias que ejecutan la plantilla de instancia anterior.
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=10% \ [--zone=ZONE | --region=REGION]
actualizaciones canarias
Una actualización canary es una actualización que se aplica a un subconjunto de instancias del grupo. Con una actualización canary, puede probar nuevas funciones o actualizaciones en un subconjunto aleatorio de instancias, en lugar de implementar una actualización potencialmente disruptiva en todas sus instancias. Si una actualización no va bien, solo necesita revertir el subconjunto de instancias, minimizando la interrupción para sus usuarios.
Una actualización canary es lo mismo que una actualización continua estándar, excepto que la cantidad de instancias que deben actualizarse es menor que el tamaño total del grupo de instancias. Al igual que una actualización continua estándar, puede configurar opciones adicionales para controlar el nivel de interrupción de su servicio.
Iniciando una actualización canaria
Para iniciar una actualización canary, especifique hasta dos versiones de plantilla de instancia, normalmente una nueva plantilla de instancia para canary y la plantilla de instancia actual para el resto de las instancias. Por ejemplo, puede especificar que el 20 % de sus instancias se creen en función de
NEW_INSTANCE_TEMPLATE
mientras que el resto de las instancias continúan ejecutándose enOLD_INSTANCE_TEMPLATE
. No puede especificar más de dos plantillas de instancias a la vez.NEW_INSTANCE_TEMPLATE
puede ser una plantilla de instancia regional de la misma región que la de su MIG o una plantilla de instancia global.Siempre debes especificar un tamaño de destino (
targetSize
) para la versión canary. No puede iniciar una actualización canary si omite el tamaño objetivo para la versión canary. Por ejemplo, si especificó que el 10 % de las instancias deben usarse para canarying, el 90 % restante no se modifica y usa la plantilla de instancia actual.Consola
nube de gcloud
Utilice el comando
rolling-action start-update
. Proporcione tanto la plantilla actual como la nueva plantilla para expresar explícitamente cuántas instancias deben usar cada plantilla:gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=CURRENT_INSTANCE_TEMPLATE_NAME \ --canary-version=template=NEW_TEMPLATE,target-size=SIZE \ [--zone=ZONE | --region=REGION]
Reemplace lo siguiente:
Por ejemplo, el siguiente comando realiza una actualización canary que implementa
example-template-B
en el 10 % de las instancias del grupo:gcloud compute instance-groups managed rolling-action start-update example-mig \ --version=template=example-template-A \ --canary-version=template=example-template-B,target-size=10%
DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal . En el cuerpo de la solicitud, incluya tanto la plantilla de instancia actual como la nueva plantilla de instancia que desea controlar. Por ejemplo:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "targetSize": { "[percent|fixed]": NUMBER|PERCENTAGE # Use `fixed` for a specific number of instances } }, { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE_NAME" } ] }
Reemplace lo siguiente:
Para obtener más opciones, consulte Configuración de opciones para su actualización .
Después de realizar una solicitud, puede monitorear la actualización para saber cuándo finaliza.
Avanzando una actualización canary
Después de ejecutar una actualización canary , puede decidir si desea confirmar la actualización al 100 % del MIG o revertirla.
Consola
nube de gcloud
Si desea comprometerse con su actualización canary, avance la actualización emitiendo otro comando
rolling-action start-update
pero establezca solo el indicadorversion
y omita el indicador--canary-version
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ [--zone=ZONE | --region=REGION]
DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal . En el cuerpo de la solicitud, especifique la nueva plantilla de instancia como unaversion
y omita la plantilla de instancia anterior del cuerpo de la solicitud. Omita la especificación del tamaño objetivo para implementar la actualización en el 100 % de las instancias. Por ejemplo:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" # New instance template } ] }
Actualizaciones de monitoreo
Después de iniciar una actualización, la nueva configuración puede tardar algún tiempo en terminar de implementarse en todas las instancias afectadas. Puede monitorear el progreso de una actualización verificando lo siguiente:
Estado del grupo
A nivel de grupo, Compute Engine completa un campo de solo lectura llamado
status
que contiene un indicadorversionTarget.isReached
y un indicadorisStable
. Puedes usar la CLI de gcloud o REST para acceder a estas marcas. También puede usar la consola de Google Cloud para ver la cantidad actual y planificada de instancias que se actualizan.Consola
Puede monitorear una actualización continua para un grupo yendo a la página de detalles del grupo.
nube de gcloud
Utilice el comando
describe
.gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
También puedes usar el comando
gcloud compute instance-groups managed wait-until
con la marca--version-target-reached
para esperar hasta questatus.versionTarget.isReached
se establezca entrue
para el grupo:gcloud compute instance-groups managed wait-until INSTANCE_GROUP_NAME \ --version-target-reached \ [--zone=ZONE | --region=REGION]
DESCANSAR
Llame al método
get
en un recurso MIG regional o zonal .GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/get
Verificar si se completó la implementación de una actualización
Verifique si la implementación de una actualización se completó verificando el valor del campo
status.versionTarget.isReached
del MIG:Comprobar si un grupo de instancias administrado es estable
Verifique que todas las instancias de un grupo de instancias administrado se estén ejecutando y en buen estado verificando el valor del campostatus.isStable
del grupo.status.isStable
establecido enfalse
indica que los cambios están activos, pendientes o que el propio MIG se está modificando.status.isStable
establecido entrue
indica lo siguiente:Recuerde que la estabilidad de un MIG depende de numerosos factores porque un MIG se puede modificar de numerosas maneras. Por ejemplo:
Tan pronto como finalicen todas las acciones,
status.isStable
se establece nuevamente entrue
para ese MIG.Acciones actuales en instancias
Utilice la CLI o REST de Google Cloud para ver detalles sobre las instancias en un grupo de instancias administrado. Los detalles incluyen el estado de la instancia y las acciones actuales que el grupo está realizando en sus instancias.
nube de gcloud
Todas las instancias administradas
Para verificar el estado y las acciones actuales en todas las instancias del grupo, use el comando
list-instances
.gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
El comando devuelve una lista de instancias del grupo, incluido su estado, acciones actuales y otros detalles:
NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR vm-instances-9pk4 us-central1-f CREATING my-new-template vm-instances-h2r1 us-central1-f STOPPING DELETING my-old-template vm-instances-j1h8 us-central1-f RUNNING NONE my-old-template vm-instances-ngod us-central1-f RUNNING NONE my-old-template
La columna
HEALTH_STATE
aparece vacía a menos que haya configurado la verificación de estado .Una instancia administrada específica
Para comprobar el estado y la acción actual de una instancia específica del grupo, utilice el comando
describe-instance
.gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--zone=ZONE | --region=REGION]
El comando devuelve detalles sobre la instancia, incluido el estado de la instancia, la acción actual y, para MIG con estado, el estado preservado:
currentAction: NONE id: '6789072894767812345' instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41 instanceStatus: RUNNING name: example-mig-hz41 preservedStateFromConfig: metadata: example-key: example-value preservedStateFromPolicy: disks: persistent-disk-0: autoDelete: NEVER mode: READ_WRITE source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41 version: instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template
DESCANSAR
Llame al método
listManagedInstances
en un recurso MIG regional o zonal . Por ejemplo, para ver detalles sobre las instancias en un recurso MIG zonal, puede realizar la siguiente solicitud:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
La llamada devuelve una lista de instancias para el MIG, incluidos
instanceStatus
ycurrentAction
de cada instancia.{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-prvp", "id": "5317605642920955957", "instanceStatus": "RUNNING", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template", "currentAction": "REFRESHING" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-pz5j", "currentAction": "DELETING" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-w2t5", "id": "2800161036826218547", "instanceStatus": "RUNNING", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template", "currentAction": "REFRESHING" } ] }
Para ver una lista de valores de campo de
instanceStatus
válidos, consulte Ciclo de vida de instancia de VM .Si una instancia está experimentando algún tipo de cambio, el grupo de instancias administrado establece el campo
currentAction
de la instancia en una de las siguientes acciones para ayudarlo a realizar un seguimiento del progreso del cambio. De lo contrario, el campocurrentAction
se establece enNONE
.Los posibles valores
currentAction
son:Revertir una actualización
No existe un comando explícito para revertir una actualización a una versión anterior, pero si decide revertir una actualización (ya sea una actualización totalmente confirmada o una actualización canary), puede hacerlo realizando una nueva solicitud de actualización y pasando la plantilla de instancia a la que desea revertir.
nube de gcloud
Por ejemplo, el siguiente comando CLI de gcloud revierte una actualización lo más rápido posible. Reemplace
OLD_INSTANCE_TEMPLATE
con el nombre de la plantilla de instancia a la que desea volver.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=OLD_INSTANCE_TEMPLATE_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal .En el cuerpo de la solicitud, especifique la plantilla de instancia anterior como
version
:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "maxUnavailable": { "percent": 100 } }, "versions": [ { "instanceTemplate": "global/instanceTemplates/OLD_INSTANCE_TEMPLATE_NAME" # Old instance template } ] }
Para un MIG regional con menos de 10 instancias, debe usar un valor fijo para
maxUnavailable
y establecer el valor en la cantidad de instancias en el grupo.El Actualizador trata una solicitud de reversión de la misma manera que una solicitud de actualización normal, por lo que puede especificar opciones de actualización adicionales.
Detener una actualización
No existe ningún método o comando explícito para detener una actualización. Puede cambiar una actualización de proactiva a oportunista y, si otros servicios como el escalador automático no cambian el tamaño del grupo, el cambio a oportunista detiene efectivamente la actualización.
Para cambiar una actualización de proactiva a oportunista mediante la CLI de gcloud, ejecuta el siguiente comando:
gcloud compute instance-groups managed rolling-action stop-proactive-update INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
Para detener la actualización por completo después de convertirla de proactiva a oportunista, siga estos pasos:
Controlar la velocidad de una actualización continua
De forma predeterminada, cuando realiza una solicitud de actualización, el Actualizador realiza la actualización lo más rápido posible. Si no está seguro de querer aplicar una actualización por completo o está probando tentativamente los cambios, puede controlar la velocidad de la actualización mediante los siguientes métodos.
También puede utilizar una combinación de estos métodos para controlar la velocidad de su actualización.
Controlar el nivel de interrupción durante una actualización continua
Dependiendo de la naturaleza de una actualización, podría alterar el estado del ciclo de vida de una instancia. Por ejemplo, cambiar el disco de inicio de una instancia requiere reemplazar la instancia. Puede controlar el nivel de interrupción durante una actualización continua configurando las siguientes opciones:
Ambas opciones aceptan los siguientes valores:
Valor Descripción ¿Qué propiedades de instancia se pueden actualizar? REFRESH
No detengas la instancia. Discos adicionales, metadatos de instancia, etiquetas, etiquetas RESTART
Detenga la instancia y vuelva a iniciarla. Discos adicionales, metadatos de instancia, etiquetas, etiquetas, tipo de máquina REPLACE
(Predeterminado). Reemplace la instancia según la opción del método de reemplazo . Todas las propiedades de la instancia almacenadas en la plantilla de instancia o en la configuración por instancia La acción más disruptiva permitida no puede ser menos disruptiva que la acción mínima.
Cuando implementas actualizaciones automáticamente, se aplican las siguientes configuraciones predeterminadas:
Puede cambiar el comportamiento predeterminado utilizando la API de Compute Engine para establecer los campos
updatePolicy.minimalAction
yupdatePolicy.mostDisruptiveAllowedAction
en su recurso MIG, por ejemplo, llamando al métodoregionInstanceGroupManagers.patch
. Alternativamente, puede seleccionar las acciones específicas permitidas para actualizar las máquinas virtuales cuando actualiza su MIG en la consola de Google Cloud. Para ver la configuración actual, consulte obtener las propiedades de un MIG .Una actualización falla si requiere una acción más disruptiva de lo que permitió. Si esto sucede, puede probar la actualización nuevamente con una acción permitida más disruptiva, o puede actualizar selectivamente la instancia . El motor de cómputo realiza la validación del mejor esfuerzo para ver si las instancias se pueden actualizar con el límite de interrupción especificado. Pero debido a los cambios concurrentes en el sistema, la situación puede cambiar después de que comience la actualización. Si una operación en una instancia particular falla, enumere los errores de instancia para ver el error.
Realizar un reemplazo o reiniciar en rodar
Un reinicio de Rolling se detiene y reinicia todas las instancias, mientras que un reemplazo de rodadura reemplaza las instancias de acuerdo con la opción Método de reemplazo . Un reinicio o reemplazo continuo no cambia nada más sobre el grupo, incluida la plantilla de instancia.
Hay muchas razones por las que es posible que desee un reinicio de rodaje o un reemplazo de rodadura. Por ejemplo, es posible que desee reiniciar o reemplazar sus instancias de VM de vez en cuando por una de las siguientes razones:
Use la consola de Google Cloud, la CLI de Google Cloud o REST para realizar un reinicio o reemplazar.
Consola
nube de gcloud
Use el comando
restart
oreplace
el comando .El siguiente comando reemplaza todas las instancias en el MIG, uno a la vez:
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME
El siguiente comando reinicia cada instancia, una a la vez:
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME
Puede personalizar aún más cada uno de estos comandos con las mismas opciones disponibles para actualizaciones (por ejemplo,
maxSurge
ymaxUnavailable
).DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal .En el campo
updatePolicy.minimalAction
, especifiqueRESTART
oREPLACE
. En el campoversions.instanceTemplate
, especifique la plantilla actual.Para activar la acción, también debe actualizar el campo
versions.name
Nombre, por ejemplo, al agregarla con una marca de tiempo. Más tarde, puede enumerar las máquinas virtuales del MIG e inspeccionarversions.name
de cada VM.Por ejemplo, para un MIG zonal, la siguiente solicitud muestra la configuración mínima necesaria para reiniciar automáticamente el 100% de las instancias.
PATCH https://compute.googleapis.com/compute/v1/projects/example-project/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "minimalAction": "RESTART", "type": "PROACTIVE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE_NAME", "name": "v2-1705499403" } ] }
Ejemplos adicionales de reemplazo/reinicio
Realizar un reinicio de todas las máquinas virtuales, dos a la vez
Este comando reinicia todas las máquinas virtuales en el grupo, dos a la vez. Observe que no se especifica una nueva plantilla de instancia.
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=2 \ [--zone=ZONE | --region=REGION]
Realice un reinicio de todas las máquinas virtuales lo más rápido posible
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
Realice un reemplazo enrollado de todas las máquinas virtuales lo más rápido posible
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]
Preservar nombres de instancias
Si necesita preservar los nombres de sus instancias de VM en una actualización, establezca el
replacementMethod
paraRECREATE
. También debe establecermaxUnavailable
para que sea mayor que0
ymaxSurge
para ser0
. Recreando instancias en lugar de reemplazarlos hace que su actualización tarda más en completarse, pero las instancias actualizadas mantienen sus nombres.Si no especifica un método de reemplazo, se utiliza el valor actual de
updatePolicy.replacementMethod
del MIG. Si no está establecido, se usa el valor predeterminado delsubstitute
, lo que reemplaza las instancias de VM con nuevas instancias que tienen nombres generados aleatoriamente.nube de gcloud
Al emitir un comando
rolling-action
, incluya el--replacement-method=recreate
.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --replacement-method=recreate \ --version=template=NEW_TEMPLATE \ --max-unavailable=5 \ [--zone=ZONE | --region=REGION]
DESCANSAR
Llame al método
patch
en un recurso MIG regional o zonal . En el cuerpo de solicitud, incluya el campoupdatePolicy.replacementMethod
:PATCH /compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "PROACTIVE", "maxUnavailable": { "fixed": 5 }, "replacementMethod": "RECREATE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ] }
Después de hacer una solicitud, puede monitorear la actualización para saber cuándo ha terminado la actualización.
Actualización de un grupo de instancias administradas regionales
Un MIG regional contiene instancias VM que se extienden a través de múltiples zonas dentro de una región, en oposición a un MIG zonal, que solo contiene instancias en una zona. Los MIG regionales le permiten distribuir sus instancias en más de una zona para mejorar la disponibilidad de su aplicación y para apoyar casos extremos en los que falla una zona o un grupo completo de instancias deja de responder.
Realizar una actualización en un MIG regional es la misma que realizar una actualización en un MIG zonal, con algunas excepciones descritas a continuación. Cuando inicia una actualización a un MIG regional, el actualizador siempre actualiza las instancias de forma proporcional y de manera uniforme en cada zona. No puede elegir en qué instancias se actualizan primero las zonas ni puede elegir actualizar instancias en una sola zona.
Diferencias entre la actualización de MIG regionales versus zonales
Los MIG regionales tienen los siguientes valores de actualización predeterminados:
NUMBER_OF_ZONES
es el número de zonas asociadas con el MIG regional. Por defecto, el número de zonas para un MIG regional es3
. Pero puede seleccionar un número diferente.Si está utilizando números fijos al especificar una actualización, el número fijo debe ser
0
o igual o mayor que el número de zonas asociadas con el MIG regional. Por ejemplo, si el grupo se distribuye en tres zonas, entonces no puede establecermaxSurge
en1
o en2
porque el actualizador tiene que crear una instancia adicional en cada una de las tres zonas.Usar un número fijo o un porcentaje en las solicitudes de actualización
Si especifica un número fijo en sus solicitudes de actualización, el número que especifica se divide por el número de zonas en el MIG regional y se distribuye de manera uniforme. Por ejemplo, si especifica
maxSurge=10
, entonces el actualizador divide 10 en el número de zonas en la región y crea instancias basadas en ese número. Si el número de instancias no se divide uniformemente en las zonas, el actualizador agrega las instancias restantes a una zona aleatoria. Entonces, durante 10 instancias en tres zonas, dos de las zonas obtienen 3 instancias y una zona obtiene 4 instancias. La misma lógica se aplica amaxUnavailable
y a los parámetrostargetSize
para actualizaciones canarias.Puede especificar un porcentaje solo si su MIG contiene 10 o más instancias de VM. Los porcentajes se manejan de manera ligeramente diferente dependiendo de la situación:
¿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).
-