Aplicar selectivamente actualizaciones de configuración de VM en un MIG


Este documento describe cómo aplicar selectivamente 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 selectiva, también conocida como tipo de actualización "oportunista". Este tipo de actualización ofrece las siguientes ventajas:

  • Puede seleccionar las máquinas virtuales que desea actualizar.
  • Puede controlar el tiempo y la secuencia de las actualizaciones.
  • Puedes usar la CLI de gcloud o REST para actualizar todas las VM inmediatamente.

Como alternativa, si desea automatizar la implementación de una nueva configuración en todas o en un subconjunto aleatorio de las máquinas virtuales en un MIG, consulte Aplicar automáticamente actualizaciones de configuración de máquinas virtuales 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 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

    1. 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.

    2. Set a default region and zone.
    3. 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 .

Aplicar la configuración actualizada a las máquinas virtuales seleccionadas

Asegúrese de que el tipo de política de actualización de su grupo esté configurado en "oportunista" para evitar que MIG aplique automáticamente una nueva configuración de VM a las VM existentes. Para obtener más información, consulte Verifique el tipo de política de actualización de su grupo .

Luego, usa la CLI de gcloud o REST para actualizar la configuración de tu MIG y aplicar la configuración más reciente a VM específicas del grupo o a todas las VM del grupo.

nube de gcloud

Para configurar una nueva plantilla de instancia para su grupo, puede usar el comando set-instance-template .

gcloud compute instance-groups managed set-instance-template INSTANCE_GROUP_NAME \
    --template=INSTANCE_TEMPLATE

Aplicar configuración a máquinas virtuales específicas

Para aplicar la configuración actualizada a máquinas virtuales específicas, use el comando update-instances con el indicador --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 máquinas virtuales

Para aplicar la configuración actualizada a todas las máquinas virtuales, utilice el comando update-instances con el indicador --all-instances .

gcloud compute instance-groups managed update-instances INSTANCE_GROUP_NAME \
    --all-instances \
    --most-disruptive-allowed-action DISRUPTION_LEVEL \
    --minimal-action DISRUPTION_LEVEL

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del MIG
  • INSTANCE_TEMPLATE : nueva plantilla de instancia
  • INSTANCE_NAMES : una lista de máquinas virtuales a las que aplicar la plantilla
  • DISRUPTION_LEVEL : el nivel de interrupción mínimo o máximo: none , refresh , restart o replace
    • La acción mínima predeterminada es none
    • La acción predeterminada más disruptiva permitida es replace

DESCANSAR

Para configurar una nueva plantilla de instancia para su grupo, llame al método patch en un MIG zonal o regional y actualice el campo versions.instanceTemplate . Para evitar implementar automáticamente la nueva plantilla en todas las máquinas virtuales del grupo, establezca 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 configuración a máquinas virtuales específicas

Para aplicar la configuración actualizada a máquinas virtuales específicas, llame al método applyUpdatesToInstances para su MIG zonal o regional y especifique una lista de máquinas virtuales 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 máquinas virtuales

Para aplicar la configuración actualizada a todas las máquinas virtuales existentes, establezca 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
}

Reemplace lo siguiente:

  • INSTANCE_GROUP_NAME : el nombre del grupo
  • NEW_TEMPLATE : el nombre de la nueva plantilla
  • ZONE : la zona de una instancia a actualizar
  • INSTANCE_NAME_1 e INSTANCE_NAME_2 : los nombres de las máquinas virtuales que se actualizarán
  • DISRUPTION_LEVEL : el nivel de interrupción mínimo o máximo: NONE , REFRESH , RESTART o REPLACE
    • La minimalAction predeterminada es NONE .
    • La mostDisruptiveAllowedAction predeterminada es REPLACE .

Al igual que otros métodos de grupos de instancias administrados, applyUpdatesToInstances se basa en la intención, lo que significa que devuelve una respuesta de operación . La operación puede tardar algún tiempo en completarse.

Después de realizar una solicitud, puede verificar el estado para verificar que la actualización esté completa.

Controle el nivel de interrupción durante las actualizaciones selectivas

Dependiendo de la naturaleza de una actualización, podría alterar el estado 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 selectiva configurando las siguientes opciones:

  • 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 NONE . 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 la estrictamente necesaria, establezca la acción mínima en RESTART o REPLACE . 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 en RESTART para detectar los cambios de metadatos.
  • 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 establece la acción permitida más disruptiva en RESTART , el intento de actualizar la imagen del disco de inicio falla porque esa actualización requiere la recreación de la instancia, una acción más disruptiva que un reinicio.

Al actualizar las máquinas virtuales seleccionadas, ambas opciones aceptan los siguientes valores:

Valor Descripción ¿Qué propiedades de instancia se pueden actualizar?
NONE No interrumpas la instancia en absoluto. Ninguno
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 Elimine la instancia y créela nuevamente. 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 actualiza selectivamente máquinas virtuales, se aplican los siguientes valores predeterminados:

  • La acción mínima predeterminada es NONE , lo que limita las interrupciones tanto como sea posible.
  • 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.

¿Qué sigue?