Aplica automáticamente actualizaciones de configuración de VM en un MIG
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En este documento, se describe cómo aplicar de forma automática las actualizaciones de configuración a las instancias de máquina virtual (VM) en un grupo de instancias administrado (MIG).
Compute Engine mantiene las VM en un MIG en función de los componentes de configuración que usas: plantilla de instancias, configuración opcional de todas las instancias y configuración con estado opcional.
Cada vez que actualices la configuración de VM de un MIG, cambia esos componentes. Compute Engine aplica de forma automática la configuración actualizada a las VM nuevas que se agregan al grupo.
Para aplicar una configuración actualizada a las VM existentes, puedes establecer una actualización automática, también conocida como tipo de actualización proactiva. El MIG lanza de forma automática las actualizaciones de configuración para todas las VM del grupo o para un subconjunto de ellas. Puedes controlar la velocidad de implementación, el nivel de interrupción del servicio y la cantidad de instancias que el MIG actualiza con la plantilla nueva mediante una actualización de versión canary. Después de especificar una configuración nueva, no necesitas proporcionar entradas adicionales y la actualización se completa por sí sola.
Si aún no lo hiciste, configura la autenticación.
La autenticación 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:
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 Google Cloud CLI con el siguiente comando:
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local,
debes usar las credenciales que proporciones a la gcloud CLI.
Para obtener más información, consulta
Autentícate para usar REST
en la documentación de autenticación de Google Cloud .
Limitaciones
Si tienes un MIG con estado y deseas usar actualizaciones progresivas automatizadas, debes mantener los nombres de las instancias cuando las reemplaces o, de manera equivalente, configurar el método de reemplazo como RECREATE.
Las configuraciones por instancia para las direcciones IP no son compatibles con las interfaces de red dinámicas (NIC).
Inicia una actualización progresiva básica
Una actualización progresiva básica es una actualización que se implementa de forma gradual en todas las instancias de un MIG hasta que todas estén actualizadas a la configuración deseada más reciente. La actualización progresiva omite de forma automática las instancias que ya tienen la configuración más reciente.
Puedes controlar varios aspectos de una actualización progresiva, como la cantidad de instancias que se pueden desconectar para la actualización, el tiempo de espera entre instancias de actualización, si la nueva plantilla afecta a todas las instancias o solo a una parte, etcétera.
Cuando se realiza una actualización progresiva, se debe tener en cuenta la siguiente información:
Las actualizaciones se basan en la intención. Cuando realizas la solicitud de actualización inicial, la API de Compute Engine muestra una respuesta correcta para confirmar que la solicitud es válida, pero eso no indica que la actualización fue exitosa. Debes verificar el estado del grupo para determinar si la actualización se implementó correctamente.
La API del Actualizador del grupo de instancias es una API declarativa. La API espera una solicitud para especificar la configuración deseada posterior a la actualización del MIG, en lugar de una llamada a función explícita.
Las actualizaciones automáticas admiten hasta dos versiones de plantilla de instancias en tu MIG. Esto significa que puedes especificar dos versiones diferentes de plantillas de instancias para tu grupo, lo que es útil cuando se realizan actualizaciones canary.
Para iniciar una actualización progresiva básica en la que la actualización se aplique a todas las instancias del grupo, selecciona una de las siguientes opciones:
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
INSTANCE_TEMPLATE_URL: Es la URL de la plantilla de instancias que deseas usar para crear VMs en el MIG. La URL puede contener el ID o el nombre de la plantilla de instancias. Especifica uno de los siguientes valores:
Para una plantilla de instancias regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID
Para una plantilla de instancias global: INSTANCE_TEMPLATE_ID
REGION: Para los MIG regionales, proporciona la región
REST
Llama al método patch en un recurso de MIG regional o zonal.
Por ejemplo, para un MIG regional, la siguiente solicitud muestra la configuración mínima necesaria a fin de actualizar automáticamente el 100% de las instancias a la nueva plantilla de instancias.
Para configuraciones avanzadas, debes incluir otras opciones de actualización. Si no especificas lo contrario, la configuración predeterminada de maxSurge y maxUnavailable es 1 multiplicada por la cantidad de zonas afectadas. Esto significa que solo 1 instancia se desconecta sin conexión en cada zona afectada y el MIG crea solo 1 instancia adicional por zona durante la actualización.
Configura opciones para tu actualización
Para actualizaciones más complejas, puedes 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:
Actualizaciones automáticas o proactivas
Actualizaciones selectivas u oportunistas
Si deseas aplicar actualizaciones de forma automática, configura el tipo como proactivo.
Como alternativa, si una actualización automática puede ser demasiado disruptiva, puedes optar por realizar una actualización oportunista. El MIG aplica una actualización oportunista solo cuando inicias de forma manual la actualización en instancias seleccionadas o cuando se crean instancias nuevas. Se pueden crear nuevas instancias cuando tú o cuando otro servicio, como un escalador automático, cambia el tamaño del MIG. Compute Engine no inicia solicitudes de manera activa para aplicar actualizaciones oportunistas en instancias existentes.
Usa la opción maxSurge para configurar cuántas instancias nuevas puede crear el MIG superior a su targetSize durante una actualización automática. Por ejemplo, si estableces maxSurge en 5, el MIG usa la plantilla de instancias nueva para crear hasta 5 instancias nuevas por encima de su tamaño de destino. Si estableces un valor mayor de maxSurge, se acelera tu actualización, por el costo de instancias adicionales, y se factura de acuerdo con lahoja de precios de Compute Engine.
Puedes especificar un número fijo o, si el grupo de instancias administrado tiene 10 instancias o más, un porcentaje. Si estableces un porcentaje, el Actualizador redondea el número de instancias de ser necesario.
Si no estableces el valor maxSurge, se usa el valor predeterminado. Para los MIG zonales, el valor predeterminado para maxSurge es 1. En los MIG regionales, el valor predeterminado es la cantidad de zonas asociadas con el grupo, de forma predeterminada es 3.
maxSurge solo funciona si tienes una cuota o recursos suficientes para admitir los recursos adicionales.
Si tu actualización no requiere que se reemplacen VM, esta opción se ignora. Para forzar el reemplazo de las VM durante una actualización, configura la opción acción mínima.
Cantidad máxima de instancias no disponibles
Usa 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 estableces maxUnavailable en 5, entonces solo 5 instancias se desconectan para actualizarse a la vez. Usa este parámetro para controlar cuánto interrumpe la actualización a tu servicio y controlar la frecuencia con 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 el tamaño, puede que las instancias en creación no estén disponibles. Estas instancias se toman en cuenta en el número maxUnavailable.
Puedes especificar un número fijo o, si el grupo tiene 10 instancias o más, un porcentaje. Si estableces un porcentaje, el Actualizador redondea la cantidad de instancias, de ser necesario.
Si no deseas que ninguna máquina no esté disponible durante una actualización, establece el valor maxUnavailable en 0 y el valor maxSurge en más de 0. Con esta configuración, Compute Engine quita cada máquina anterior solo después de que se crea y se está ejecutando la nueva máquina de reemplazo.
Si no estableces el valor maxUnavailable, se usa el valor predeterminado. Para los MIG zonales, el valor predeterminado es 1. En los MIG regionales, el valor predeterminado es la cantidad de zonas asociadas con el grupo, de forma predeterminada es 3.
Tiempo de espera mínimo
Usa la opción minReadySec para especificar la cantidad de tiempo de espera antes de considerar que una instancia nueva o reiniciada está actualizada. Usa esta opción para controlar la velocidad a la que se implementa la actualización automática. El temporizador comienza cuando se cumplen las siguientes condiciones:
Ten en cuenta que para que la verificación de estado se muestre en buen estado, el Actualizador espera las siguientes condiciones:
Espera hasta el período especificado por el valor autohealingPolicies.initialDelaySec del MIG para que la verificación de estado muestre HEALTHY.
Luego, espera el período especificado por minReadySec.
Si la verificación de estado no muestra HEALTHY dentro de initialDelaySec, entonces el Actualizador determina que la instancia de VM está en mal estado y puede detener la actualización. Mientras la instancia de VM espera la verificación durante los períodos de initialDelaySec y minReadySec, la currentAction de la instancia es VERIFYING.
Sin embargo, el estado de la instancia de VM subyacente sigue siendo RUNNING.
Si no hay verificaciones de estado del grupo de instancias, el temporizador comienza cuando el estado de la instancia es RUNNING.
El valor máximo de la propiedad minReadySec es 3,600 segundos (1 hora).
En el siguiente diagrama, se muestra cómo las opciones de tamaño objetivo, máximo no disponible, aumento máximo y tiempo de espera mínimo afectan a las instancias. Para obtener más información sobre el tamaño del destino, consulta Actualizaciones de versión canary.
Acción mínima
Usa la opción de acción mínima para minimizar la interrupción tanto como sea posible o para aplicar una acción más disruptiva que lo necesario. Por ejemplo, Compute Engine no necesita reiniciar una VM para cambiar sus metadatos.
Sin embargo, si tu aplicación lee los metadatos de la instancia solo cuando se reinicia una VM, puedes establecer la acción mínima para que se realice un reinicio a fin de captar los cambios de metadatos.
Si tu actualización requiere una acción más disruptiva que la establecida con esta marca, Compute Engine realiza la acción necesaria para ejecutar la actualización.
Por ejemplo, si especificas un reinicio como la acción mínima, el Actualizador intenta reiniciar las instancias para aplicar la actualización. Sin embargo, si cambias el SO, lo que no puede realizarse mediante el reinicio de la instancia, el Actualizador reemplaza las instancias en el grupo por instancias de VM nuevas.
Usa la opción de acción más disruptiva permitida para evitar que se realice una actualización que requiera más interrupciones de las que puedes permitirte. Si una actualización no se puede completar debido a esta configuración, la actualización fallará y tus VM mantendrán su configuración anterior.
De forma predeterminada, cuando actualizas un MIG, el grupo borra las instancias de VM y las cambia por instancias nuevas con nombres nuevos. Si necesitas preservar los nombres de tus instancias de VM, usa la opción replacementMethod.
Preservar nombres de instancias existentes puede ser útil si tienes aplicaciones o sistemas que dependen del uso de nombres de instancias específicos. Por ejemplo, algunas aplicaciones, como Memcached, dependen de nombres de instancias porque no tienen un servicio de descubrimiento; por lo tanto, cada vez que un nombre de instancia cambia, la aplicación pierde conexión con esa VM específica.
Para conservar los nombres de las instancias, configura el método de reemplazo en RECREATE en lugar de SUBSTITUTE si actualizas el MIG con la CLI de gcloud o la API de Compute Engine.
Como alternativa, si actualizas el MIG desde la Google Cloud consola, selecciona la casilla de verificación Conservar nombres cuando se reemplacen las VMs.
Estos son los valores válidos: de replacementMethod:
SUBSTITUTE (predeterminado) Reemplaza las instancias de VM más rápido durante las actualizaciones porque se crean VM nuevas antes de que se cierren las anteriores. Sin embargo, los nombres de las instancias no se conservan porque las instancias anteriores los siguen usando.
RECREATE. Conserva los nombres de las instancias mediante una actualización. Compute Engine libera el nombre de la instancia cuando se cierra la VM anterior. Luego, Compute Engine crea una instancia nueva con ese mismo nombre. Para usar este modo, debes establecer maxSurge en 0.
Realiza una actualización progresiva con un máximo de 3 máquinas no disponibles y un tiempo de espera mínimo de 3 minutos antes de marcar una instancia nueva como disponible
Realiza una actualización progresiva de todas las instancias de VM, pero crea hasta un 10% de instancias nuevas por encima del tamaño de destino a la vez
Por ejemplo, si tienes 1,000 instancias y ejecutas el siguiente comando, el Actualizador crea hasta 100 instancias antes de comenzar a quitar las instancias que estén ejecutando la plantilla de instancias anterior.
Una actualización de la versión canary es una actualización que se aplica a un subconjunto de instancias en el grupo. Con una actualización de la versión canary, puedes probar nuevas funciones o actualizaciones en un subconjunto aleatorio de instancias, en lugar de lanzar una actualización que podría ser perjudicial para todas tus instancias. Si una actualización no funciona bien, solo necesitas revertir el subconjunto de instancias, lo que minimiza la interrupción para tus usuarios.
Una actualización de la versión canary es igual a una actualización progresiva estándar, excepto que la cantidad de instancias que se deben actualizar es menor que el tamaño total del grupo de instancias. Al igual que una actualización progresiva estándar, puedes configurar opciones adicionales para controlar el nivel de interrupción del servicio.
Inicia una actualización canary
Para iniciar una actualización canary, especifica hasta dos versiones de plantilla de instancias, por lo general, se usa una plantilla de instancias nueva con el fin de realizar pruebas canary y la plantilla de instancias actual para el resto de las instancias. Por ejemplo, puedes especificar que el 20% de las instancias se creen en función de una NEW_INSTANCE_TEMPLATE, mientras que el resto de las instancias continúen ejecutándose en la OLD_INSTANCE_TEMPLATE. No puedes especificar más de dos plantillas de instancias a la vez. NEW_INSTANCE_TEMPLATE puede ser una plantilla de instancias regional de la misma región que la de tu MIG o una plantilla de instancias global
Siempre debes especificar un tamaño de destino (targetSize) para la versión canary. No puedes iniciar una actualización canary si omites el tamaño de destino para la versión canary. Por ejemplo, si especificaste que el 10% de las instancias deben usarse para realizar pruebas canary, el 90% restante no se toca y usan la plantilla de instancias actual.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
Selecciona el grupo de instancias administrado que deseas actualizar.
Haz clic en Editar.
Haz clic en Instance template & overrides para expandir la sección.
Haz clic en Agregar una plantilla para realizar pruebas.
En la lista Plantilla de instancias para pruebas, selecciona una plantilla nueva.
Si la plantilla que quieres probar no está disponible, usa la opción Crear una plantilla de instancias nueva y sigue las instrucciones para crear una.
En el campo Ejecución de destino, ingresa el número o porcentaje de instancias a las que deseas aplicar la nueva plantilla.
En el campo Instancias o porcentaje, selecciona instancias o porcentaje para indicar el número que ingresaste en el campo Ejecución objetivo.
Opcional: Para configurar otras opciones para las actualizaciones, haz clic en Política de actualización para expandir la sección. Modifica los campos según sea necesario.
Haz clic en Guardar para iniciar la actualización.
gcloud
Usa el comando rolling-action start-update
Proporciona la plantilla actual y la nueva para expresar de forma explícita cuántas instancias debe usar cada plantilla:
INSTANCE_GROUP_NAME: Es el nombre del grupo de instancias.
CURRENT_INSTANCE_TEMPLATE: Es la plantilla de instancias actual que usa el grupo.
NEW_TEMPLATE: Es la plantilla nueva que deseas probar.
SIZE: La cantidad o el porcentaje de instancias a la que deseas aplicar esta actualización. Debes aplicar la propiedad target-size a la plantilla --canary-version. Solo puedes establecer un porcentaje si el grupo de instancias contiene 10 instancias o más.
Llama al método patch en un recurso de MIG regional o zonal. En el cuerpo de la solicitud, incluye la plantilla de instancias actual y la de instancias nuevas en la que deseas realizar pruebas de la versión canary. 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"
}
]
}
Reemplaza lo siguiente:
NEW_TEMPLATE: el nombre de la nueva plantilla con la que quieres realizar una actualización canary.
NUMBER|PERCENTAGE: el número fijo o porcentaje de instancias para realizar pruebas canary en esta actualización. Solo puedes establecer un porcentaje si el grupo de instancias contiene 10 instancias o más. De lo contrario, proporciona un número fijo.
CURRENT_INSTANCE_TEMPLATE: Es la plantilla de instancias actual que usa el grupo.
Selecciona el grupo de instancias administrado que deseas actualizar.
Haz clic en Editar.
En la plantilla de instancias que seleccionaste para la prueba, actualiza el valor de Ejecución objetivo de la plantilla de prueba a 100% para extender la plantilla de prueba a todas tus instancias.
Como alternativa, puedes reemplazar la plantilla original por la plantilla de prueba y borrar la plantilla de instancias para la prueba.
Haz clic en Guardar para iniciar la actualización.
gcloud
Si deseas confirmar tu actualización canary, reenvía la actualización mediante la emisión de otro comando rolling-action start-update pero establece solo la marca version y omite la marca --canary-version.
Llama al método patch en un recurso de MIG regional o zonal. En el cuerpo de la solicitud, especifica la nueva plantilla de instancias como version y omite la plantilla de instancias anterior de tu cuerpo de solicitud.
Omite la especificación de tamaño de destino para lanzar la actualización en el 100% de las instancias. Por ejemplo:
Después de iniciar una actualización, la nueva configuración puede tardar un poco en lanzarse en todas las instancias afectadas. Puedes supervisar el progreso de una actualización si verificas lo siguiente:
Para verificar si todas las VM alcanzaron su versión de plantilla de destino, consulta el estado del grupo.
A nivel de grupo, Compute Engine propaga un campo de solo lectura llamado
status que contiene una
marca versionTarget.isReached y una
marca isStable. Puedes usar
gcloud CLI o REST para acceder
a estas marcas. También puedes usar la Google Cloud consola para ver el número actual y planificado de instancias que se están actualizando.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.get en el MIG
Console
Puedes supervisar una actualización progresiva para un grupo desde la página de detalles del grupo.
En la consola de Google Cloud , ve a la página Grupos de instancias.
Selecciona el grupo de instancias administrado que deseas supervisar. La página de resumen para el grupo de instancias muestra la plantilla que usa cada instancia.
Para ver los detalles, haz clic en la pestaña Detalles.
En la sección Plantilla de instancias, puedes ver la cantidad actual y de destino de instancias para cada plantilla de instancias.
Para ver la configuración de actualización, haz clic en Parámetros de actualización para expandirla.
También puedes usar el comando gcloud compute instance-groups managed wait-until con la marca --version-target-reached con el fin de esperar hasta que status.versionTarget.isReached se configure en true para el grupo:
Llama al método get en un recurso de MIG regional o zonal.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/get
Verifica si el lanzamiento de una actualización está completo
Verifica si el lanzamiento de una actualización se completa mediante la verificación del valor del campo status.versionTarget.isReached del MIG:
status.versionTarget.isReached configurado como true indica que todas las instancias de VM se crearon o están en proceso de creación mediante la versión de destino.
status.versionTarget.isReached se establece en false para indicar que al menos una VM aún no usa la versión de destino. O bien, en el caso de una actualización canary, false indica que la cantidad de VM que usa una versión de destino no coincide con su tamaño de destino.
Comprueba si un grupo de instancias administrado es estable
Para verifica que todas las instancias en un grupo de instancias administrado estén en ejecución y en buen estado, comprueba el valor del campo status.isStable del grupo.
status.isStable configurado como false indica que los cambios están activos, pendientes o que el MIG se está modificando.
status.isStable establecido en true indica lo siguiente:
Ninguna de las instancias del MIG se somete a ningún tipo de cambio, y la currentAction para todas las instancias es NONE.
No hay cambios pendientes para las instancias en el MIG.
No se modifica el MIG en sí.
Recuerda que la estabilidad de un MIG depende de muchos factores, puesto que un MIG se puede modificar de varias maneras. Por ejemplo:
Realizas una solicitud para implementar una plantilla de instancias nueva.
Realizas una solicitud para crear, borrar, cambiar el tamaño o actualizar las instancias en el MIG.
Un recurso de reparación automática reemplaza una o más instancias en mal estado en el MIG.
En un MIG regional, se redistribuyen algunas de las instancias.
Cuando todas las acciones se completan, status.isStable se vuelve a establecer en true para ese MIG.
Acciones actuales en las instancias
Usa Google Cloud CLI o REST para ver los detalles de las instancias en un grupo de instancias administrado. Los detalles incluyen el estado de la instancia y las acciones actuales
que realiza el grupo en sus instancias.
Permisos necesarios para esta tarea
Para realizar esta tarea, debes tener los siguientes permisos:
compute.instanceGroupManagers.get en el grupo
compute.instanceGroupManagers.list en el grupo
gcloud
Todas las instancias administradas
Para comprobar el estado y las acciones actuales en todas las instancias del grupo, usa
el
comando list-instances.
Llama al método listManagedInstances en un recurso de MIG regional o zonal. Por ejemplo, para ver detalles sobre las instancias en un recurso de MIG
zonal, puedes realizar la siguiente solicitud:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
La llamada muestra una lista de instancias para el MIG, incluidos los valores de instanceStatus y currentAction de cada instancia.
Si una instancia experimenta algún tipo de cambio, el grupo de instancias
administrado establece el campo currentAction de la instancia como una de las siguientes acciones para
ayudarte a realizar un seguimiento del progreso del cambio. De lo contrario, el campo currentAction
se configura como NONE.
Los valores posibles de currentAction son los siguientes:
ABANDONING. La instancia se está quitando 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 de nuevo.
DELETING: La instancia está en proceso de borrado.
RECREATING: La instancia se está reemplazando.
REFRESHING: La instancia se está quitando de sus grupos de destino actuales y se está agregando de nuevo a la lista de grupos de destino actuales (esta lista puede ser igual o diferente a la de los grupos de destino existentes).
RESTARTING. la instancia está en proceso de reinicio con los métodos stop y start.
RESUMING La instancia está en proceso de reanudarse después de que se suspendió.
STARTING La instancia está en proceso de iniciarse después de detenerse.
STOPPING. La instancia se está deteniendo.
SUSPENDING. La instancia se está suspendiendo.
VERIFYING: la instancia se creó y está en proceso de verificación.
NONE: no hay ninguna acción en ejecución en la instancia.
Revierte una actualización
No hay ningún comando explícito para revertir una actualización a una versión anterior, pero si decides revertir una actualización (ya sea una actualización completa o una canary), puedes hacer una nueva solicitud de actualización y pasar la plantilla de instancias a la que deseas revertir.
gcloud
Por ejemplo, el siguiente comando de la CLI de gcloud revierte una actualización lo más rápido posible. Reemplaza OLD_INSTANCE_TEMPLATE por el nombre de la plantilla de instancias a la que deseas revertir.
En el caso de un MIG regional con menos de 10 instancias, debes usar un valor fijo para maxUnavailable y establecer el valor en el número 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 puedes especificar opciones de actualización adicionales.
Detén una actualización
No hay ningún método o comando explícito para detener una actualización. Puedes cambiar una actualización de proactiva a oportunista y si el grupo de instancias administrado no está en un proceso de cambio de tamaño llevado a cabo por otros servicios como el escalador automático, el cambio a oportunista detiene por completo la actualización.
Para cambiar una actualización de proactiva a oportunista mediante la CLI de gcloud, ejecuta el siguiente comando:
La CLI de gcloud muestra una respuesta que incluye una lista de instancias en el 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, dos instancias ya se actualizaron.
A continuación, haz una solicitud para realizar una actualización nueva, pero pasa la cantidad de instancias que ya se actualizaron como el tamaño de destino:
Para el Actualizador, esta actualización parece completa, por lo que no se actualiza ninguna otra instancia y se detiene de manera efectiva.
Controla la velocidad de una actualización progresiva
De forma predeterminada, cuando realizas una solicitud de actualización, el actualizador realiza la actualización lo más rápido posible. Si no estás seguro de querer aplicar una actualización completa o estás probando de manera tentativa los cambios, puedes controlar la velocidad de la actualización mediante los siguientes métodos.
Establece un valor grande de minReadySec. Establecer este valor hace que el actualizador espere esta cantidad de segundos antes de considerar que la instancia se actualizó de forma correcta y pasar a la siguiente instancia.
Habilita la verificación de estado para que el actualizador espere a que tu aplicación se inicie e informe una señal de buen estado, antes de considerar que la instancia se actualizó de modo correcto y pasar a la siguiente instancia.
Establece valores bajos de maxUnavailable y maxSurge. Esto garantiza que solo se actualice un número mínimo de instancias a la vez.
También puedes usar una combinación de estos métodos para controlar la frecuencia de tu actualización.
Controla el nivel de interrupción durante una actualización progresiva
Según la naturaleza de una actualización, se puede interrumpir el estado del ciclo de vida de una instancia. Por ejemplo, para cambiar el disco de arranque de una instancia, se debe reemplazar la instancia. Puedes controlar el nivel de interrupción que se produce durante una actualización progresiva si configuras las siguientes opciones:
Acción mínima: Usa esta opción para minimizar la interrupción tanto como sea posible o aplicar una acción más disruptiva que lo necesario.
Para limitar las interrupciones tanto como sea posible, establece la acción mínima en REFRESH. Si tu 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 que la estrictamente necesaria, configura la acción mínima en RESTART o REPLACE. Por ejemplo, Compute Engine no necesita reiniciar una VM para cambiar sus metadatos. Sin embargo, si tu aplicación lee los metadatos de la instancia solo cuando se reinicia una VM, puedes establecer la acción mínima en RESTART para que se capturen los cambios de metadatos.
Acción más disruptiva permitida: Usa esta opción para evitar que se realice una actualización si requiere más interrupciones de las que puedes permitirte. Si tu actualización requiere una acción más disruptiva que la acción que configuraste con esta marca, la solicitud de actualización fallará.
Por ejemplo, si estableces la acción más disruptiva permitida en RESTART, un intento de actualizar la imagen de disco de arranque falla porque esa actualización requiere un reemplazo de instancias, que es una acción más disruptiva que la de reiniciar.
Ambas opciones aceptan los siguientes valores:
Valor
Descripción
¿Qué propiedades de instancia se pueden actualizar?
REFRESH
No detengas la instancia.
Discos adicionales, interfaces de red dinámicas (NIC), metadatos de instancias, etiquetas y etiquetas
RESTART
Detén la instancia y vuelve a iniciarla.
Tipo de máquina, etiquetas, metadatos de instancia, etiquetas, NIC dinámicas y discos adicionales
REPLACE
(Predeterminado) Reemplaza la instancia según la opción del método de reemplazo.
Todas las propiedades de instancia almacenadas en la plantilla de instancias o la configuración por instancia
La acción más perjudicial permitida no puede ser menos perjudicial que la acción mínima.
Cuando implementas actualizaciones automáticamente, se aplican los siguientes valores predeterminados:
La acción mínima predeterminada es REPLACE. Si deseas evitar las interrupciones innecesarias, configura la acción mínima para que sea menos disruptiva.
La acción predeterminada más disruptiva permitida es REPLACE. Si no puedes tolerar esta interrupción, establece la acción más disruptiva permitida para que sea menos perjudicial.
Puedes cambiar el comportamiento predeterminado si usas la API de Compute Engine para configurar los campos updatePolicy.minimalAction y updatePolicy.mostDisruptiveAllowedAction en tu recurso de MIG, por ejemplo, si llamas al método regionInstanceGroupManagers.patch.
Como alternativa, puedes seleccionar las acciones permitidas para actualizar las VMs cuando actualizas el MIG desde la Google Cloud consola.
Para ver la configuración actual, consulta Obtén las propiedades de un MIG.
Una actualización falla si requiere una acción más disruptiva que la permitida. Si esto sucede, puedes intentar actualizar nuevamente con una acción permitida más disruptiva o puedes actualizar la instancia de forma selectiva.
Compute Engine realiza la validación de mejor esfuerzo para ver si las instancias se pueden actualizar con el límite de interrupción especificado. Pero debido a cambios simultáneos en el sistema, la situación puede cambiar después de que comienza la actualización. Si falla una operación en una instancia en particular, genera una lista de los errores de instancias para ver el error.
Realiza un reinicio o reemplazo progresivo
Un reinicio progresivo detiene y reinicia todas las instancias, y un reemplazo progresivo reemplaza todas las instancias según la opción del método de reemplazo. Te recomendamos realizar un reinicio o reemplazo progresivo por los siguientes motivos:
Limpiar las pérdidas de memoria
Reiniciar tu aplicación para que pueda ejecutarse desde una máquina nueva.
Forzar un reemplazo periódico como práctica recomendada para probar tus instancias.
Actualizar la imagen del sistema operativo de la instancia o volver a ejecutar la secuencia de comandos de inicio para actualizar el software
Cuando realizas un reinicio o reemplazo progresivo de las instancias con la consola deGoogle Cloud o Google Cloud CLI, se realizan las siguientes acciones subyacentes en el MIG. Sin embargo, si usas REST, debes establecer estos campos en la solicitud para activar una operación de reinicio o reemplazo.
Si el updatePolicy.type es OPPORTUNISTIC, el MIG cambia el tipo a AUTOMATIC.
El MIG actualiza el versions.name de cada instancia.
Para realizar un reemplazo o un reinicio progresivo, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Grupos de instancias.
Los siguientes comandos realizan un reinicio o reemplazo progresivo de instancias en un MIG zonal. Si es un MIG regional, reemplaza la marca --zone=ZONE por --region=REGION.
Para reiniciar todas las instancias en un MIG zonal, una a la vez, haz lo siguiente:
En el cuerpo de la solicitud, debes configurar los siguientes campos. Si no especificas estos campos, es posible que la solicitud se realice correctamente, pero el MIG no realizará la operación de reinicio o reemplazo.
Establece el campo updatePolicy.minimalAction en RESTART o REPLACE.
Configura el campo versions.name. Por ejemplo, especifica un número de versión con una marca de tiempo: v2-ddmmyyhhmm.
Establece el campo versions.instanceTemplate en la URL de la plantilla actual.
Para reiniciar todas las instancias en un MIG zonal, realiza la siguiente solicitud. Para reemplazar todas las instancias, establece el campo minimialAction en REPLACE en la misma solicitud.
Puedes personalizar aún más la solicitud con las mismas opciones disponibles para las actualizaciones, por ejemplo, maxSurge y maxUnavailable.
Después de finalizar una operación de reinicio o reemplazo, puedes enumerar las VMs del MIG y, luego, inspeccionar el campo versions.name de cada VM para determinar cuáles se reiniciaron o reemplazaron.
Ejemplos adicionales de reemplazo o reinicio
Realiza un reinicio progresivo de todas las VM, de a dos a la vez
El siguiente comando reinicia todas las VMs en el grupo, de dos en dos. Ten en cuenta que no se especifica una plantilla de instancias nueva.
Si necesitas preservar los nombres de las instancias de VM en una actualización, configura el replacementMethod como RECREATE. También debes configurar maxUnavailable para que sea mayor que 0 y maxSurge en 0. Volver a crear instancias en lugar de reemplazarlas hace que la actualización tarde más en completarse, pero las instancias actualizadas mantienen sus nombres.
Si no especificas un método de reemplazo, se usa el valor updatePolicy.replacementMethod actual del MIG. Si no se configura, se usa el valor predeterminado substitute, que reemplaza las instancias de VM con instancias nuevas que tienen nombres generados de manera aleatoria.
gcloud
Cuando emitas un comando rolling-action, incluye la marca --replacement-method=recreate.
Actualiza un grupo de instancias administrado regional
Un MIG regional contiene instancias de VM que se distribuyen en varias zonas dentro de una región, a diferencia de un MIG zonal, que solo contiene instancias en una zona. Los MIG regionales te permiten distribuir tus instancias en más de una zona para mejorar la disponibilidad de tu aplicación y admitir casos extremos en los que una zona falla o un grupo completo de instancias deja de responder.
Realizar una actualización en un MIG regional es igual que realizar una actualización en un MIG zonal, con algunas excepciones que se describen a continuación. Cuando inicias la actualización de un MIG regional, el Actualizador siempre actualiza las instancias de manera proporcional y uniforme en cada zona. No puedes elegir qué instancias se actualizan primero y no puedes actualizar instancias en una sola zona.
Diferencias entre la actualización de los MIG regionales y zonales
Los MIG regionales tienen los siguientes valores de actualización predeterminados:
maxUnavailable=NUMBER_OF_ZONES
maxSurge=NUMBER_OF_ZONES
NUMBER_OF_ZONES es la cantidad de zonas asociadas con el MIG regional. De forma predeterminada, la cantidad de zonas para un MIG regional es 3. Pero puedes seleccionar una cantidad diferente.
Si usas números fijos al momento de 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, no puedes establecer maxSurge en 1 o 2 porque el Actualizador debe crear una instancia adicional en cada una. de las tres zonas.
Usa un número fijo o un porcentaje en las solicitudes de actualización
Si especificas un número fijo en las solicitudes de actualización, este se divide por el número de zonas en el MIG regional y se distribuye de forma equitativa. Por ejemplo, si especificas maxSurge=10, el Actualizador divide 10 entre el número de zonas en la región y crea instancias basadas en ese número. Si la cantidad de instancias no se divide de forma equitativa entre las zonas, el Actualizador agrega las instancias restantes a una zona aleatoria. Por lo tanto, para 10 instancias en tres zonas, dos de las zonas obtienen 3 instancias y una obtiene 4. Se aplica la misma lógica a los parámetros maxUnavailable y targetSize para las actualizaciones canary.
Puedes especificar un porcentaje solo si tu MIG contiene 10 o más instancias de VM.
Los porcentajes se manejan de manera apenas diferente según la situación:
Si especificas un porcentaje de instancias de VM para una actualización canary, el Actualizador intenta distribuir las instancias de forma equitativa entre las zonas. El resto se redondea hacia arriba o hacia abajo en cada zona, pero la diferencia total no es de más de 1 instancia de VM por grupo. Por ejemplo, para un MIG con 10 instancias y un porcentaje de tamaño de destino del 25%, la actualización se lanza en 2 o 3 instancias de VM.
Si especificas un porcentaje para las opciones de actualización como maxSurge y maxUnavailable, los porcentajes se redondean de manera independiente por zona.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2026-03-12 (UTC)"],[],[]]