Al utilizar una combinación de familias de imágenes personalizadas y actualizaciones continuas , puedes habilitar actualizaciones de imágenes del sistema operativo con un solo clic en tu grupo de instancias administrado (MIG).
El uso de la actualización de la imagen del sistema operativo con un solo clic proporciona una serie de beneficios, que incluyen:
- Funciona con todos los tipos de máquinas VM y todos los tamaños de grupos de instancias.
- Admite imágenes y contenedores de Windows y Linux.
- Las instancias se recrean en función de su plantilla de instancia actual u, opcionalmente, en función de una nueva plantilla, para que pueda conservar metadatos y scripts de inicio personalizados.
- Funciona con MIG con estado , por lo que, opcionalmente, puede conservar datos en discos que no son de arranque.
- El lanzamiento de una actualización a la nueva versión del sistema operativo se produce automáticamente, sin necesidad de intervención adicional del usuario después de la solicitud inicial.
- Admite actualizaciones por lotes con una verificación de estado opcional.
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:
-
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.
-
¿Cómo funciona la actualización de la imagen del sistema operativo con un solo clic?
Cuando invoca una actualización, MIG reemplaza los discos de arranque de todas las máquinas virtuales del grupo con la última versión de imagen del sistema operativo disponible de su familia de imágenes personalizadas. El MIG conserva los metadatos y los scripts de inicio que usted configura en la plantilla de instancia para cada VM del grupo. Los discos que no son de arranque se recrean según su especificación en la plantilla de instancia. Para obtener información sobre cómo conservar datos, consulte Configuración de discos con estado en MIG .
Para limitar la interrupción de las aplicaciones, puede realizar actualizaciones en lotes, manteniendo un porcentaje específico de máquinas virtuales en ejecución durante la actualización. Para aumentar la confiabilidad, puede configurar una verificación de estado basada en aplicaciones para su MIG: el grupo espera una respuesta saludable de una aplicación en las máquinas virtuales actualizadas antes de continuar con más actualizaciones en otras máquinas virtuales.
Antes de comenzar
Instale o actualice a la última versión de Google Cloud CLI .
Asegúrese de haber creado una plantilla de instancia que apunte a una familia de imágenes. Google recomienda utilizar familias de imágenes personalizadas para reducir el riesgo de implementar una versión de imagen que sea incompatible con su aplicación. Puede asegurarse de que solo se implementen versiones de imágenes compatibles agregando imágenes a su familia de imágenes personalizadas solo después de realizar pruebas de compatibilidad con su aplicación.
Cuando su plantilla de instancia apunta a una familia de imágenes, el MIG siempre crea instancias a partir de la última imagen de la familia, por ejemplo:
- Cuando el MIG agrega nuevas instancias porque usted o el escalador automático del MIG aumentaron el tamaño del MIG.
- Cuando el MIG recrea una instancia, se activa manualmente o mediante reparación automática.
Pruebe la nueva imagen con su aplicación antes de agregarla a su familia de imágenes e implementarla.
Opcionalmente, cree una verificación de estado basada en aplicaciones para su MIG. Una verificación de estado basada en la aplicación verifica que su aplicación esté respondiendo como se espera en cada una de las máquinas virtuales del MIG. Puede configurar su actualización para permitir no más de una VM no disponible. Si una aplicación no responde como se esperaba, entonces el MIG marca esa VM como no disponible y la implementación no continúa.
Realización de actualizaciones de imágenes del sistema operativo con un solo clic para MIG
Para actualizar todas las máquinas virtuales en un MIG a la imagen más reciente de una familia de imágenes personalizada, complete los siguientes pasos:
Inicie un reemplazo continuo con el siguiente comando.
gcloud compute instance-groups managed rolling-action replace instance-group-name \ [--max-surge=max-surge ] [--max-unavailable=max-unavailable]
Reemplace lo siguiente:
-
instance-group-name
: el nombre del MIG sobre el que operar. -
max-surge
: la cantidad máxima adicional de máquinas virtuales que se pueden crear temporalmente durante el proceso de actualización. Puede ser un número fijo (por ejemplo,5
) o un porcentaje del tamaño del MIG (por ejemplo,10%
). -
max-unavailable
: la cantidad máxima de máquinas virtuales que pueden no estar disponibles durante el proceso de actualización. Puede ser un número fijo (5
) o un porcentaje del tamaño del MIG (10%
).
Puede combinar comprobaciones de estado utilizando las opciones
--max-unavailable
y--max-surge
para detener futuras actualizaciones si hacen que las máquinas virtuales dejen de estar disponibles.-
Supervise la actualización utilizando el subcomando
wait-until
para comprobar que el campostatus.versionTarget.isReached
del MIG esté configurado entrue
.gcloud compute instance-groups managed wait-until instance-group-name --version-target-reached
Reemplace lo siguiente:
-
instance-group-name
: el nombre del MIG sobre el que operar.
El comando regresa cuando se actualiza el grupo.
También puede enumerar instancias para ver el estado de cada instancia.
gcloud compute instance-groups managed list-instances instance-group-name
El comando devuelve una lista de instancias y sus detalles, incluido el estado , el estado de salud y las acciones actuales para cada VM. Cuando todas las máquinas virtuales están
RUNNING
y no tienen ninguna acción actual, entonces el MIG está actualizado y es estable .-
En caso de que necesite retroceder a una imagen del sistema operativo anterior, debe crear una plantilla de instancia y especificar la imagen que desea usar. Luego, inicie una actualización continua para actualizar todas las instancias administradas para usar esa plantilla. Para obtener más información, consulte Revertir una actualización .
Ejemplo
Este ejemplo cubre las siguientes tareas:
- Cree una plantilla de instancia para actualizar fácilmente las imágenes del sistema operativo:
- Especifique una familia de imágenes personalizada en la plantilla de instancia.
- Cree un MIG basado en la plantilla.
- Configure una verificación de estado para limitar las interrupciones causadas por una actualización de imagen.
- Agregue una nueva imagen a una familia de imágenes.
- Invoque una actualización del sistema operativo con un solo comando.
- Supervise la actualización.
Utilice los siguientes pasos para habilitar y realizar actualizaciones del sistema operativo con un solo clic en un MIG:
Cree una plantilla de instancia que especifique una familia de imágenes personalizada. La familia de imágenes debe contener imágenes probadas y confiables. Cada VM que MIG crea a partir de la plantilla utiliza la última imagen disponible de esta familia.
gcloud compute instance-templates create example-template \ --machine-type n1-standard-4 \ --image-family my-image-family \ --image-project my-project \ --tags=http-server
Cree un MIG basado en la plantilla de instancia. Este ejemplo inicia el MIG con tres instancias basadas en
example-template
. Debido a que la plantilla de instancia especifica una familia de imágenes, MIG crea cada VM con la imagen más reciente de la familia.gcloud compute instance-groups managed create example-group \ --base-instance-name example \ --size 3 \ --zone us-east1-b \ --template example-template
Opcional: Configure y habilite una verificación de estado basada en aplicaciones. Si su aplicación no responde después de una actualización de imagen, puede usar el estado de verificación de estado combinado con la configuración maxUnavailable para evitar que MIG realice más implementaciones.
Cree una verificación de estado que busque una respuesta HTTP
200
en la ruta de solicitud/health
. La aplicación GitHub que está en cada instancia sirve esa ruta.gcloud compute health-checks create http example-autohealer-check \ --check-interval 10 \ --timeout 5 \ --healthy-threshold 2 \ --unhealthy-threshold 3 \ --request-path "/health"
Cree una regla de firewall para permitir que las sondas del verificador de estado accedan a las instancias. Las sondas del verificador de estado provienen de direcciones en los rangos:
130.211.0.0/22
y35.191.0.0/16
gcloud compute firewall-rules create default-allow-http-health-check \ --network default \ --allow tcp:80 \ --source-ranges 130.211.0.0/22,35.191.0.0/16
Agregue el control de salud a su MIG.
gcloud compute instance-groups managed update example-group \ --zone us-east1-b --health-check example-autohealer-check
Cuando haya una actualización disponible, probada y determinada como compatible con su aplicación, cree una nueva imagen y use la marca
--family
para incluir esa imagen en la familia de imágenes personalizada.gcloud compute images my-image-v2 \ --source-disk boot-disk-1 \ --source-disk-zone us-central1-f \ --family my-image-family
En este ejemplo, la imagen más reciente de
my-image-family
ahora esmy-image-v2
, que se basa en el disco de origenboot-disk-1
.Invoque un reemplazo continuo para reemplazar todas las máquinas virtuales en el MIG. El MIG reemplaza cada VM según la plantilla de instancia del grupo. La plantilla de instancia especifica
my-image-family
, por lo que cada VM obtiene la imagen más reciente de la familia (my-image-v2
).Puede configurar el nivel de interrupción que provoca la actualización. En este ejemplo, MIG crea una máquina virtual adicional por encima del tamaño objetivo del grupo y no elimina ninguna máquina virtual existente hasta que esa máquina virtual esté en funcionamiento.
gcloud compute instance-groups managed rolling-action replace example-group \ --max-surge 1 --max-unavailable 0
Si desea monitorear el estado de las actualizaciones, use el comando
wait-until
con el indicador--version-target-reached
. El comando regresa cuando se actualiza el grupo.gcloud compute instance-groups managed wait-until --version-target-reached example-group \ --zone us-east1- Waiting for group to reach version target ... Version target is reached
También puede utilizar el comando
list-instances
para ver el estado , el estado de salud , las acciones actuales , la plantilla de instancia y la versión de cada VM.gcloud compute instance-groups managed list-instances example-group \ --zone us-east1-b NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR test-211p us-east1-b RUNNING HEALTHY NONE example-template 0/2020-01-30 13:34:28.843377+00:00 test-t5qb us-east1-b RUNNING UNKNOWN VERIFYING example-template 0/2020-01-30 13:34:28.843377+00:00 test-x331 us-east1-b RUNNING HEALTHY NONE example-template 0/2020-01-20 20:39:51.819399+00:00
Si necesita retroceder a una imagen anterior, siga los siguientes pasos:
- Cree una nueva plantilla de instancia que especifique la imagen que desea.
- Inicie una actualización continua para aplicar la plantilla de instancia.
¿Qué sigue?
- Obtenga más información sobre las mejores prácticas de familias de imágenes .
- Obtenga más información sobre los grupos de instancias .
- Obtenga más información sobre las plantillas de instancias .
- Obtenga más información sobre las actualizaciones continuas en MIG.