Acerca del agente invitado

En este documento, se proporciona una descripción general de la arquitectura del agente invitado. El agente invitado es un componente fundamental del entorno invitado. El entorno invitado contiene secuencias de comandos, daemons y objetos binarios que las instancias necesitan para ejecutarse en Compute Engine. Para obtener más información, consulta Entorno invitado.

El agente invitado configura los servicios y define las configuraciones mínimas para funciones como la ejecución de secuencias de comandos de instantáneas, la conmutación por error de Windows, el acceso al SO y la autenticación SSH basada en metadatos. Para obtener más información sobre las funciones principales de l agente invitado, consulta Funcionalidad del agente invitado.

Arquitectura del agente invitado

A partir de la versión 20250901.00, la arquitectura del agente invitado se actualiza de un diseño monolítico a un sistema moderno basado en complementos. Esta evolución mejora la flexibilidad, la confiabilidad y la extensibilidad.

  • Arquitectura monolítica: Los agentes invitados anteriores a 20250901.00 cuentan con un proceso único y unificado centrado en la descripción de las instancias del servidor de metadatos. El servidor de metadatos es un servidor HTTP por instancia que se ejecuta junto con cada instancia de Compute Engine. Para obtener más información sobre el servidor de metadatos, consulta Metadatos de VM.

    El agente invitado realiza un sondeo largo del servidor de metadatos y toma medidas en función de los cambios de estado. Con esta arquitectura, el estado del agente se comparte en todas las tareas, como la configuración de SSH y de red. Este enfoque monolítico carecía de aislamiento de interfaz y componentes. Los cambios o las introducciones de funciones en un área del agente afectan a todo el sistema de forma simultánea. Este patrón dificulta las adiciones de funciones y la cobertura de pruebas.

  • Arquitectura basada en complementos: A partir de la versión 20250901.00, el agente invitado se divide en complementos distintos e independientes administrados por un administrador central. Cada complemento puede interactuar con el servidor de metadatos y, según las instrucciones de un administrador central, realiza los cambios según sea necesario. Este enfoque modular garantiza que una falla en un complemento no afecte al agente principal ni a otros complementos.

La arquitectura basada en complementos

Esta arquitectura se basa en un administrador central que controla varios complementos, separando las funcionalidades principales de los complementos opcionales y específicos del servicio, denominados extensiones.

Componentes clave

En el siguiente diagrama, se muestran los componentes clave del agente invitado y sus interacciones.

Un administrador central de agentes invitados controla un complemento principal y extensiones.
    El administrador de agentes invitados se comunica con el Gestor de extensiones de VM en el backend de Google para administrar las extensiones.
Figura 1. Arquitectura del agente invitado
  • Complemento principal: Este complemento encapsula la funcionalidad del agente invitado original. Realiza las tareas esenciales que tu instancia necesita para ejecutarse en Google Cloud. Entre ellas, se incluyen las siguientes tareas:

    • Configuración de red: Configura la interfaz de red principal para habilitar la comunicación.
    • Acceso SSH: Administra las llaves SSH del usuario para permitir conexiones seguras a tu instancia.
    • Acceso a metadatos: Proporciona una ruta de acceso para que la instancia acceda a los metadatos de la instancia y del proyecto.

    No puedes inhabilitar el complemento principal.

    Para obtener más información sobre las funciones principales del agente invitado, consulta Funcionalidad del agente invitado.

  • Extensiones (complementos opcionales): Puedes aprovisionar estas extensiones para integrarlas con otros Google Cloud servicios y realizar tareas como las siguientes:

    Para obtener más información sobre la instalación y la administración de estas extensiones, consulta Gestor de extensiones de VM.

  • Gestor de extensiones de VM: Este servicio administrado se ejecuta en la infraestructura de backend de Google . Google Cloud El Gestor de extensiones de VM administra el ciclo de vida de las extensiones, incluida su instalación, actualizaciones y configuración, comunicándose con el administrador del agente invitado en la instancia.

  • Administrador del agente invitado: Este proceso central inicia, detiene y supervisa el estado de todos los complementos. El administrador del agente invitado facilita la comunicación entre el complemento principal y el Gestor de extensiones de VM. La administración del ciclo de vida de las extensiones incluye lo siguiente:

    • Instalación y actualizaciones: El administrador del agente invitado instala, inicia, detiene y configura extensiones según las instrucciones del Gestor de extensiones de VM.
    • Supervisión del estado: El administrador del agente invitado supervisa el estado y el estado de las extensiones, incluido el uso de CPU y memoria, y envía esta información al Gestor de extensiones de VM.
    • Administración de políticas: Usa las APIs de Compute Engine para crear políticas que controlen la instalación y el control de versiones de las extensiones.

Beneficios

La arquitectura basada en complementos ofrece varias ventajas sobre el diseño monolítico. Los beneficios son los siguientes:

  • Aislamiento de complementos: Cada complemento se ejecuta en un proceso separado, por lo que una falla en uno no afecta al agente principal ni a otros complementos.
  • Protección de recursos: El agente invitado usa funciones a nivel del SO para aplicar límites de recursos en los complementos, lo que impide que un solo complemento consuma una cantidad excesiva de CPU o memoria.
  • Recuperación automática de fallas: El sistema se recupera automáticamente de una falla del complemento deteniendo y reiniciando el complemento.
  • Habilitación selectiva: Puedes inhabilitar las extensiones que no son necesarias, lo que te permite proteger o optimizar tu instancia.
  • Reducción de la sobrecarga de las extensiones: El administrador del agente invitado controla automáticamente la instalación y las actualizaciones de las extensiones, lo que reduce el esfuerzo manual necesario para mantenerlas actualizadas.

Ubicación de los objetos binarios del agente invitado

En las siguientes tablas, se enumeran las rutas de acceso de los diferentes objetos binarios del agente invitado en instancias de Linux y Windows, según la arquitectura.

Objetos binarios del agente basado en complementos

En esta tabla, se enumeran las rutas de acceso de los objetos binarios del agente invitado basado en complementos en instancias de Linux y Windows:

Componente Ruta de acceso en Linux Ruta de acceso en Windows
Administrador del agente invitado /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\agent\GCEWindowsAgentManager.exe
Objeto binario del complemento principal /usr/lib/google/guest_agent/core_plugin C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe
Ejecutor de secuencias de comandos de metadatos /usr/bin/gce_metadata_script_runner C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe

Objetos binarios del agente monolítico

En la siguiente tabla, se enumeran las rutas de acceso de los objetos binarios del agente invitado monolítico en instancias de Linux y Windows:

Componente Ruta de acceso en Linux Ruta de acceso en Windows
Agente invitado /usr/bin/google_guest_agent C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe
Ejecutor de secuencias de comandos de metadatos /usr/bin/google_metadata_script_runner C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe
Claves autorizadas No aplicable C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe

Servicios de daemon del agente invitado

En las siguientes tablas, se enumeran los servicios de daemon del agente invitado instalados en instancias de Linux y Windows. Estos servicios se ejecutan como unidades systemd en Linux y como servicios de Windows en Windows.

Componente Nombre del servicio en Linux Nombre del servicio en Windows Estado
Administrador del agente invitado google-guest-agent-manager.service GCEAgentManager Habilitado en todos los modos, incluida la retrocompatibilidad.
Agente invitado google-guest-agent.service GCEAgent Inhabilitado de forma predeterminada.
Habilitado solo en el modo de retrocompatibilidad.
Administrador de compatibilidad del agente invitado google-guest-compat-manager.service GCEWindowsCompatManager Habilitado en todos los modos, incluida la retrocompatibilidad.
Actualizador de certificados de carga de trabajo gce-workload-cert-refresh.timer N/A Inhabilitado de forma predeterminada.
Habilitado solo en el modo de retrocompatibilidad.
Secuencias de comandos de inicio google-startup-scripts.service GCEStartup
Secuencias de comandos de cierre google-shutdown-scripts.service Shutdown

Retrocompatibilidad

Para garantizar una transición sin problemas del agente invitado monolítico anterior al sistema basado en complementos, el paquete del agente invitado incluye varios componentes diseñados para la retrocompatibilidad. Estos componentes no forman parte de la arquitectura basada en complementos y se activan solo si eliges revertir manualmente al agente monolítico configurando el atributo de metadatos enable-guest-agent-core-plugin en false.

Entre los componentes que admiten esta compatibilidad, se incluyen los siguientes:

  • Administrador de compatibilidad del agente invitado: Este paquete administra el cambio entre el agente basado en complementos y el agente monolítico.
  • Administrador de compatibilidad del ejecutor de secuencias de comandos de metadatos: Este paquete garantiza que se use el ejecutor de secuencias de comandos correcto, según si el agente monolítico o basado en complementos está activo.
  • Administrador de compatibilidad de claves autorizadas (solo para Windows): Este paquete controla las claves SSH y garantiza que se usen las claves correctas para el agente antiguo o nuevo.
Componente Ruta de acceso en Linux Ruta de acceso en Windows
Administrador de compatibilidad del agente invitado /usr/bin/google_guest_compat_manager C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe
Administrador de compatibilidad del ejecutor de secuencias de comandos de metadatos /usr/bin/metadata_script_runner_compat C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe
Administrador de compatibilidad de claves autorizadas No aplicable C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe

¿Qué sigue?