En este documento, se describe cómo aplicar de forma selectiva 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 selectiva, también conocida como tipo de actualización “oportunista”. Este tipo de actualización ofrece las siguientes ventajas:
- Puedes seleccionar las instancias que deseas actualizar.
- Puedes controlar el momento y la secuencia de las actualizaciones.
- Puedes usar la gcloud CLI o REST para actualizar todas las VMs de inmediato.
Como alternativa, si deseas automatizar el lanzamiento de una configuración nueva a todas o a un subconjunto aleatorio de las VM en un MIG, consulta Aplica de forma automática las actualizaciones de configuración de VM en un MIG. A fin de ayudarte a decidir, consulta Métodos para aplicar una configuración nueva a las VM existentes.
Antes de comenzar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
-
Aplicar la configuración actualizada a las VM seleccionadas
Asegúrate de que el tipo de política de actualización de tu grupo esté configurado como “oportunista” para evitar que el MIG aplique de forma automática una configuración de VM nueva a las VM existentes. Para obtener más información, consulta Verifica el tipo de política de actualización de tu grupo.
Luego, usa la CLI de gcloud o REST para actualizar la configuración del MIG y aplicar la configuración más reciente a las VMs específicas del grupo o a todas las VMs del grupo.
gcloud
A fin de configurar una plantilla de instancias nueva para tu grupo, puedes usar el comando set-instance-template
.
gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE
Aplicar la configuración a VM específicas
Para aplicar la configuración actualizada a VM específicas, usa el comando update-instances
con la marca --instances
.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --instances INSTANCE_NAMES \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Aplicar la configuración a todas las VM
Para aplicar la configuración actualizada a todas las VMs, usa el comando update-instances
con la marca --all-instances
.
gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \ --all-instances \ --most-disruptive-allowed-action DISRUPTION_LEVEL \ --minimal-action DISRUPTION_LEVEL
Reemplaza lo siguiente:
INSTANCE_GROUP_NAME
: Es el nombre del MIG.INSTANCE_TEMPLATE
: es la plantilla de instancias nuevaINSTANCE_NAMES
: es una lista de las VM a las que se aplicará la plantillaDISRUPTION_LEVEL
: es el nivel de interrupción mínimo o máximo:none
,refresh
,restart
oreplace
- La acción mínima predeterminada es
none
. - La acción predeterminada más disruptiva permitida es
replace
.
- La acción mínima predeterminada es
REST
A fin de configurar una plantilla de instancias nueva para tu grupo, llama al método patch
en un MIG zonal o regional. y actualiza el campo versions.instanceTemplate
. Para evitar el lanzamiento automático de la plantilla nueva en todas las instancias del grupo, establece el campo updatePolicy.type
en OPPORTUNISTIC
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "OPPORTUNISTIC" }, "versions": [{ "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", }] }
Aplicar la configuración a VM específicas
A fin de aplicar la configuración actualizada a VM específicas, llama al método applyUpdatesToInstances
para tu zonal o regional. MIG y especifica una lista de VM en la solicitud.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "instances": [ "zones/ZONE/instances/INSTANCE_NAME_1", "zones/ZONE/instances/INSTANCE_NAME_2" ], "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Aplicar la configuración a todas las VM
Para aplicar la configuración actualizada a todas las VM existentes, establece el campo allInstances
en true
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/applyUpdatesToInstances { "allInstances": true, "minimalAction": DISRUPTION_LEVEL, "mostDisruptiveAllowedAction": DISRUPTION_LEVEL }
Reemplaza lo siguiente:
INSTANCE_GROUP_NAME
: Es el nombre del grupoNEW_TEMPLATE
: Es el nombre de la plantilla nuevaZONE
: Es la zona de una instancia que se debe actualizar.INSTANCE_NAME_1
yINSTANCE_NAME_2
: Son los nombres de las VMs que se actualizarán.DISRUPTION_LEVEL
: es el nivel de interrupción mínimo o máximo:NONE
,REFRESH
,RESTART
oREPLACE
- El valor predeterminado de
minimalAction
esNONE
. - El valor predeterminado de
mostDisruptiveAllowedAction
esREPLACE
.
- El valor predeterminado de
Similar a otros métodos de grupo de instancias administrado, applyUpdatesToInstances
se basa en la intención, lo que significa que muestra una respuesta de operación.
La operación puede tomar un tiempo en completarse.
Después de realizar una solicitud, puedes verificar el estado para comprobar que se haya completado la actualización.
Controla el nivel de interrupción durante las actualizaciones selectivas
Dependiendo de su naturaleza, una actualización puede interrumpir el estado 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 selectiva 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
NONE
. 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
oREPLACE
. 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 enRESTART
para que se capturen los cambios de metadatos.
- Para limitar las interrupciones tanto como sea posible, establece la acción mínima en
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 interruptiva que la acción que configuraste con esta marca, la solicitud de actualización fallará. Por ejemplo, si estableces la acción más interruptiva permitida en
RESTART
, un intento de actualizar la imagen de disco de arranque falla porque esa actualización requiere que se vuelvan a crear instancias, que es una acción más interruptiva que la de reiniciar.
Al momento de actualizar las VMs seleccionadas, ambas opciones aceptan los siguientes valores:
Valor | Descripción | ¿Qué propiedades de instancia se pueden actualizar? |
---|---|---|
NONE | No interrumpas la instancia en absoluto. | Ninguna |
REFRESH | No detengas la instancia. | Discos, metadatos de instancias y etiquetas adicionales |
RESTART | Detén la instancia y vuelve a iniciarla. | Tipos de máquina, etiquetas, metadatos de instancia, etiquetas y discos adicionales |
REPLACE | Borra la instancia y vuelve a crearla. | 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 actualizas las VMs de forma selectiva, se aplican los siguientes valores predeterminados:
- La acción mínima predeterminada es
NONE
, que limita la interrupción tanto como sea posible. - La acción predeterminada más perjudicial permitida es
REPLACE
. Si no puedes tolerar esta interrupción, establece la acción más interruptiva permitida para que sea menos perjudicial.
¿Qué sigue?
- Consulta Visualiza información sobre los MIG y las VMs administradas.
- Consulta Crea plantillas de instancias.
- Aprende a usar familias de imágenes y un reemplazo progresivo para actualizar la imagen de SO en todas las VM en un MIG.