En este documento, se describen las prácticas recomendadas y las estrategias para actualizar los sistemas operativos en instancias de Compute Engine. Aprende a actualizar las versiones principales del SO con infraestructura inmutable, recreación de instancias o flujos de trabajo locales, y a automatizar la aplicación de parches de seguridad de rutina.
Cuando una versión del sistema operativo se acerca al final de su asistencia (EOS) o al final de su ciclo de vida (EOL), debes actualizarla a una versión compatible para mantener las actualizaciones de seguridad, la compatibilidad del software y la Cloud de Confiance by S3NS integración de la plataforma. Para obtener más información sobre las fases de asistencia, consulta Ciclo de vida de los sistemas operativos.
Riesgos de las actualizaciones in situ de la versión principal del SO
Si realizas una actualización importante en el lugar del sistema operativo, como actualizar Debian 12 a 13, RHEL 9 a 10 o Ubuntu 24.04 a 26.04 en una instancia de procesamiento en ejecución, introduces riesgos operativos significativos en los entornos de nube. A diferencia de los servidores físicos locales, tus instancias de procesamiento dependen de paquetes especializados para que el entorno invitado se comunique con el hipervisor y el servidor de metadatos de Compute Engine.
Cuando actualizas un sistema operativo en el mismo lugar, corres el riesgo de que se produzcan los siguientes modos de falla:
- Pérdida de conectividad SSH y RDP: Los formatos de configuración para los servicios de red, las reglas de firewall a nivel del invitado, como ufw o firewalld, o la configuración del daemon SSH pueden cambiar entre las versiones del SO, lo que interrumpe el acceso administrativo remoto.
- Interrupción del entorno invitado: Los paquetes
google-guest-agentygoogle-osloginadministran las claves SSH, las cuentas de usuario, las interfaces de red y la sincronización con los metadatos. Si los repositorios o las dependencias de paquetes se interrumpen durante una actualización de distribución, es posible que el agente invitado deje de ejecutarse, lo que impedirá más accesos o la configuración de red. - Incompatibilidades con los controladores de almacenamiento y del kernel: Los cambios en el kernel,
initramfso los controladores de los controladores de disco (como virtio-scsi o NVMe) pueden causar fallas de arranque o impedir que la instancia de procesamiento reconozca los volúmenes de Persistent Disk conectados. - Configuraciones incoherentes para los repositorios: Los proveedores de sistemas operativos suelen dejar de usar o reemplazar los repositorios de paquetes heredados y las claves de firma, lo que puede provocar que los administradores de paquetes fallen a mitad de la actualización y dejen el sistema operativo en un estado irrecuperable y parcialmente instalado.
Para evitar estos riesgos, usa un modelo de infraestructura inmutable en lugar de actualizar las versiones principales del SO en tus instancias de procesamiento de producción.
Elige la estrategia de actualización adecuada
Según si tus cargas de trabajo son con estado o sin estado, elige una de las siguientes estrategias:
| Estrategia | Casos en los que se recomienda | Riesgo de tiempo de inactividad | Mecanismo de reversión |
|---|---|---|---|
| Infraestructura inmutable | Cargas de trabajo sin estado, grupos de instancias administrados (MIG), microservicios y hosts de contenedores | Sin tiempo de inactividad con reemplazo progresivo | Cómo revertir la plantilla de instancias a una imagen anterior |
| Cómo volver a crear instancias de procesamiento con Persistent Disk | Instancias de procesamiento independientes con estado, bases de datos con almacenamiento secundario adjunto y hosts de aplicaciones heredadas | Mínima con un período de mantenimiento planificado | Vuelve a conectar los discos a la instancia de procesamiento original o restablece las instantáneas |
| Actualización local del SO | Instancias de procesamiento independientes en las que no puedes automatizar ni extraer configuraciones locales | Alta, requiere tiempo de inactividad y planificación manual de la recuperación | Restablece a partir de una instantánea de Persistent Disk |
Infraestructura inmutable
La forma más segura y confiable de actualizar tus sistemas operativos es usar el modelo de infraestructura inmutable. En lugar de modificar las instancias de procesamiento en ejecución, compila nuevas instancias de procesamiento a partir de imágenes de SO públicas o personalizadas actualizadas y reemplaza tus instancias heredadas.
Si tus cargas de trabajo se ejecutan en grupos de instancias administrados (MIG), puedes automatizar este lanzamiento sin tiempo de inactividad del servicio.
Crea una imagen actualizada
- Selecciona la imagen de SO pública más reciente de la lista de Detalles de los sistemas operativos compatibles o crea una imagen base personalizada con Image Builder o herramientas automatizadas, como Packer o Ansible.
- Verifica que tu aplicación y sus dependencias se instalen y ejecuten correctamente en la nueva versión del SO en un entorno de prueba que no sea de producción.
- Crea una imagen de SO personalizada o haz referencia a la nueva familia de imágenes públicas. Para obtener más información, consulta las Prácticas recomendadas para las familias de imágenes.
Crea una plantilla de instancias actualizada
Crea una plantilla de instancias nueva que haga referencia a la imagen de SO actualizada:
gcloud compute instance-templates create NEW_TEMPLATE_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--machine-type=MACHINE_TYPE \
--region=REGION
Reemplaza lo siguiente:
NEW_TEMPLATE_NAME: Es el nombre de la plantilla de instancias nueva.IMAGE_FAMILY: Es la familia de imágenes del SO de destino, comodebian-12oubuntu-2404-lts.IMAGE_PROJECT: Es el proyecto que aloja la imagen, comodebian-cloudoubuntu-os-cloud.MACHINE_TYPE: Es el tipo de máquina de tus instancias.REGION: Es la región de Compute Engine en la que creas la plantilla.
Realiza un reemplazo progresivo en el MIG
Aplica la plantilla actualizada a tu grupo de instancias administrado y, luego, inicia un reemplazo progresivo:
gcloud compute instance-groups managed rolling-action replace MIG_NAME \
--max-surge=20% \
--max-unavailable=0 \
--region=REGION
Reemplaza lo siguiente:
MIG_NAME: Es el nombre de tu grupo de instancias administrado.REGION: Es la región en la que se encuentra el MIG. En el caso de los MIG zonales, reemplaza--region=REGIONpor--zone=ZONE.
Cómo volver a crear instancias de procesamiento con Persistent Disk
Si ejecutas instancias de procesamiento independientes con estado en las que las aplicaciones almacenan la configuración y los datos en volúmenes de Persistent Disk, puedes actualizar tu sistema operativo recreando la instancia de procesamiento con un disco de arranque nuevo y conservando tus discos de datos.
Crear copias de seguridad de todos los discos
Antes de modificar la infraestructura, crea instantáneas estándar o regionales del disco de arranque y de todos los volúmenes de Persistent Disk conectados:
gcloud compute disks snapshot BOOT_DISK_NAME \
--snapshot-names=SNAPSHOT_NAME \
--zone=ZONE
Reemplaza lo siguiente:
BOOT_DISK_NAME: Es el nombre del disco de arranque del que se creará una copia de seguridad.SNAPSHOT_NAME: Es el nombre de la nueva instantánea del Persistent Disk.ZONE: Es la zona en la que se encuentra el disco.
Para obtener más información, consulta Crea y administra instantáneas.
Separa los datos de la aplicación del disco de arranque
Asegúrate de que los datos de la aplicación, los archivos de la base de datos y los registros de transacciones residan en volúmenes de Persistent Disk secundarios o en servicios externos, como Cloud Storage o Cloud SQL, en lugar de en el disco de arranque.
Crea la instancia de procesamiento de reemplazo
Detén la instancia de procesamiento heredada para asegurarte de que los datos sigan siendo coherentes:
gcloud compute instances stop LEGACY_INSTANCE_NAME --zone=ZONE
Desconecta los discos de datos secundarios de la instancia de procesamiento heredada:
gcloud compute instances detach-disk LEGACY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONECrea una instancia de procesamiento nueva con la versión del SO de destino:
gcloud compute instances create NEW_INSTANCE_NAME \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --zone=ZONE \ --machine-type=MACHINE_TYPEAdjunta los discos de datos secundarios existentes a la instancia de procesamiento nueva:
gcloud compute instances attach-disk NEW_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONEConéctate a la nueva instancia de procesamiento, activa los sistemas de archivos en los discos de datos y, luego, inicia los servicios de la aplicación.
Si es necesario, reasigna las direcciones IP externas estáticas o los registros DNS para que apunten a la nueva instancia de procesamiento.
Reemplaza lo siguiente:
LEGACY_INSTANCE_NAME: Es el nombre de la instancia de procesamiento existente que estás actualizando.DATA_DISK_NAME: Es el nombre del volumen de Persistent Disk secundario que se desconectará y volverá a conectar.NEW_INSTANCE_NAME: Es el nombre de la nueva instancia de procesamiento de reemplazo.IMAGE_FAMILY: Es la familia de imágenes para la versión del SO de destino, comodebian-13oubuntu-2604-lts.IMAGE_PROJECT: Es el proyecto que proporciona la imagen, comodebian-cloudoubuntu-os-cloud.MACHINE_TYPE: Es el tipo de máquina de la instancia de procesamiento nueva.ZONE: Es la zona en la que se encuentran tus instancias de procesamiento.
Actualizaciones in situ del SO
Si no puedes volver a crear tu instancia de procesamiento debido a configuraciones manuales complejas y debes realizar una actualización in situ, completa estas verificaciones previas a la actualización y sigue con atención las instrucciones específicas de la distribución.
Lista de tareas previa a la actualización
Completa todos los pasos de esta lista de tareas antes de iniciar una actualización local:
- Toma una instantánea del disco de arranque antes de ejecutar cualquier comando de actualización. Este es tu mecanismo de recuperación principal si falla la actualización.
Actualiza todos los paquetes actuales y el entorno de invitado para Cloud de Confiancea las versiones más recientes disponibles para la versión actual del SO:
- Para Debian y Ubuntu:
sudo apt update && sudo apt dist-upgrade -y - Para RHEL, CentOS y Rocky Linux:
sudo dnf upgrade -y - Para SLES:
sudo zypper update
Asegúrate de que los paquetes
google-guest-agentygoogle-osloginestén activos:sudo systemctl status google-guest-agent
- Para Debian y Ubuntu:
Habilita la consola en serie interactiva en tu instancia de procesamiento para que puedas solucionar problemas y acceder si SSH o las redes dejan de funcionar durante la actualización:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata=serial-port-enable=TRUE \ --zone=ZONEReemplaza lo siguiente:
INSTANCE_NAME: El nombre de tu instancia de procesamientoZONE: Es la zona en la que se encuentra tu instancia de procesamiento.
Para obtener más información, consulta Interactúa con la consola en serie.
Si usas el Acceso al SO o las claves SSH administradas por el agente invitado, establece una contraseña para una cuenta de usuario local con privilegios de administrador, por ejemplo, con
sudo passwd USERNAME, para que puedas acceder a través de la consola en serie si el Acceso al SO no está disponible temporalmente durante la actualización. ReemplazaUSERNAMEpor el nombre de tu cuenta de usuario local.Asegúrate de que la partición raíz
/y la partición de arranque/boottengan suficiente espacio libre (se recomienda al menos 5 GB) para descargar y descomprimir paquetes nuevos:df -h / /boot
Verifica que los agentes externos para la seguridad, la copia de seguridad o la supervisión (incluido el agente de operaciones de Google Cloud) admitan la versión de destino del sistema operativo.
Procedimientos de actualización in situ
En las siguientes secciones, se proporcionan flujos de trabajo de alto nivel para los sistemas operativos más comunes. Antes de actualizar el sistema operativo, consulta siempre la documentación oficial de actualización.
Debian
Puedes actualizar Debian entre versiones principales consecutivas. No omitas las versiones principales. Por ejemplo, primero actualiza Debian 11 a 12 y, luego, actualiza Debian 12 a 13.
Actualiza los repositorios de paquetes de Debian existentes:
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
Actualiza las fuentes del paquete en
/etc/apt/sources.listy/etc/apt/sources.list.d/reemplazando el nombre interno de la versión actual, comobullseye, por el nombre interno de la versión de destino, comobookworm. Asegúrate de que las URLs del repositorio de paquetes Cloud de Confiance coincidan con el nuevo lanzamiento.Realiza una actualización mínima para actualizar las herramientas de empaquetado principales:
sudo apt update sudo apt upgrade --without-new-pkgs -y
Ejecuta la actualización de distribución completa:
sudo apt full-upgrade -y
Verifica que
google-guest-agentesté activo y habilitado:sudo systemctl enable --now google-guest-agent
Reinicia la instancia de procesamiento:
sudo systemctl reboot
Ubuntu
Para administrar las actualizaciones de LTS a LTS en Ubuntu, usa la herramienta do-release-upgrade.
Actualiza todos los paquetes actuales:
sudo apt update && sudo apt dist-upgrade -y
Instala el paquete principal del administrador de actualizaciones:
sudo apt install update-manager-core -y
Inicia la herramienta para las actualizaciones de versiones:
sudo do-release-upgrade
Sigue las instrucciones interactivas para confirmar las actualizaciones del repositorio y los reemplazos de paquetes. Si se te solicita información sobre los archivos de configuración modificados, revisa las diferencias con atención antes de reemplazarlos.
Reinicia la instancia de procesamiento cuando se te solicite.
RHEL
Para actualizar entre versiones principales de RHEL, usa la utilidad leapp de Red Hat compatible.
- Verifica el estado de tu suscripción a Red Hat y asegúrate de que la instancia de procesamiento se conecte a Red Hat Update Infrastructure (RHUI) de Compute Engine.
- Instala la utilidad Leapp y los paquetes que contienen datos de migración.
Ejecuta la evaluación previa a la actualización:
sudo leapp preupgrade
Revisa el informe en
/var/log/leapp/leapp-report.txty resuelve todos los problemas de inhibición que identifique Leapp.Ejecuta la actualización:
sudo leapp upgrade
Reinicia la instancia para permitir que Leapp realice la actualización del SO en un entorno aislado:
sudo reboot
SLES
Para realizar migraciones de paquetes de servicios de versiones principales y actualizaciones de distribución en SLES, usa zypper:
Actualiza el sistema existente:
sudo zypper patch
Ejecuta
zypper migrationpara realizar una migración en línea o sigue el flujo de trabajo de actualización de la distribución conzypper dup, especificado en la documentación de actualización de SLES.
Windows
En el caso de las instancias de procesamiento de Windows Server, puedes usar medios de instalación con licencias por volumen de Compute Engine y secuencias de comandos de PowerShell para automatizar las actualizaciones sin intervención manual.
Para realizar una actualización in situ en Windows Server, sigue el tutorial para realizar una actualización in situ de Windows Server.
Automatiza la administración de parches para actualizaciones secundarias
Distingue las actualizaciones de versiones principales del SO de las actualizaciones secundarias de rutina y los parches de seguridad. Para el mantenimiento periódico del software, las actualizaciones de paquetes y la aplicación de parches de CVE, usa VM Manager Patch para automatizar la implementación de parches en tu flota de instancias de procesamiento.
Sigue estas prácticas recomendadas para administrar parches automáticamente:
- Organiza las instancias con etiquetas: Asigna etiquetas con metadatos, como
env:dev,env:prodytier:frontend, para segmentar grupos específicos de instancias de procesamiento para aplicar parches. - Implementación zona por zona: Escalona los trabajos de aplicación de parches en zonas y regiones. Nunca apliques trabajos de parche a todas las zonas de forma simultánea en entornos de producción.
- Usa secuencias de comandos para antes y después de la aplicación de parches: Configura secuencias de comandos previas a la aplicación de parches para agotar las conexiones de forma segura o pausar los servicios, y configura secuencias de comandos posteriores a la aplicación de parches para ejecutar verificaciones de estado antes de volver a poner las instancias en servicio.
- Supervisa el cumplimiento de los parches: Usa el panel de VM Manager en la consola deCloud de Confiance para hacer un seguimiento del cumplimiento de los parches y el estado de las vulnerabilidades en toda tu flota de instancias de procesamiento.
Para obtener más información, consulta Crea trabajos de aplicación de parches.
Verificación y solución de problemas posteriores a la actualización
Después de completar una actualización, sigue estos pasos de verificación:
- Confirma que la conexión SSH o RDP se realice normalmente.
Asegúrate de que el agente invitado y el servicio de Acceso al SO estén activos y muestren un estado correcto:
sudo systemctl status google-guest-agent sudo systemctl status google-oslogin-cache
Verifica que la instancia de procesamiento pueda consultar el servidor de metadatos de la instancia:
curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/id
Confirma que se hayan iniciado los servicios de tu aplicación y que las verificaciones de estado de los balanceadores de cargas informen instancias en buen estado.
Soluciona problemas de pérdida de conexión
Si pierdes el acceso a la instancia de procesamiento a través de SSH o RDP después de una actualización local, completa los siguientes pasos para solucionar el problema:
Revisa el registro de la consola en busca de errores de kernel, errores durante el inicio del servicio o fallas durante la inicialización de la red:
gcloud compute instances tail-serial-port-output INSTANCE_NAME \ --zone=ZONESi habilitaste la consola en serie interactiva antes de la actualización, conéctate directamente a la terminal:
gcloud compute connect-to-serial-port INSTANCE_NAME \ --zone=ZONEAccede con tus credenciales de usuario locales, inspecciona los registros del sistema con
journalctl -xey reinicia la red o el serviciogoogle-guest-agent.Reemplaza lo siguiente:
INSTANCE_NAME: Es el nombre de la instancia de procesamiento en la que estás solucionando problemas.ZONE: Es la zona en la que se encuentra la instancia de procesamiento.
Si el sistema operativo no puede arrancar ni recuperarse, crea un nuevo volumen de Persistent Disk a partir de la instantánea que tomaste antes de la actualización y conéctalo como el disco de arranque de la instancia de procesamiento. Para ver los pasos detallados de recuperación, consulta Restablece una instantánea en un disco nuevo.
¿Qué sigue?
- Obtén más información sobre las etapas del ciclo de vida de los sistemas operativos y las políticas de baja.
- Revisa las prácticas recomendadas para la administración de imágenes.
- Comprende los componentes y los procesos en segundo plano del entorno invitado.
- Configura trabajos de aplicación de parches automatizados con VM Manager.
- Realiza una actualización local de Windows Server.