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 la adición 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 VM Extension Manager 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 Google Cloud se ejecuta en la infraestructura de backend de Google. 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 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 deteniéndolo y reiniciándolo.
  • Habilitación selectiva: Puedes inhabilitar las extensiones que no sean 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.

extremos de API

El agente invitado se comunica con varias APIs y extremos de Google para funcionar. Si tienes reglas de firewall específicas o usas los Controles del servicio de VPC y dependes de la funcionalidad del agente que lo usa, asegúrate de que tus instancias puedan comunicarse con los extremos correspondientes:

  • Servidor de metadatos (metadata.google.internal): El agente invitado depende del servidor de metadatos para recuperar los metadatos de la instancia y del proyecto, como las llaves SSH y las configuraciones de red, para configurar la instancia. Para obtener más información, consulta Funcionalidad principal y Extremos del servidor de metadatos.
  • Cloud Storage (storage.googleapis.com): El agente invitado puede descargar secuencias de comandos de metadatos de Cloud Storage si los metadatos de tu instancia proporcionan una URL que apunta a un bucket de Cloud Storage. Para obtener más información, consulta Ejecución de secuencias de comandos de metadatos y Solicita extremos en la documentación de Cloud Storage.
  • Gestor de extensiones de VM (*.agentcommunication.googleapis.com): El administrador del agente invitado se comunica con el Servicio de comunicación del agente (ACS) para administrar el ciclo de vida de las extensiones y generar informes de métricas. Para obtener más información, consulta Gestor de extensiones de VM.
  • Cloud Logging (logging.googleapis.com): De forma predeterminada, el agente invitado tiene habilitado Cloud Logging para los registros. Para obtener más información, consulta Descripción general de la API de Cloud Logging.

Para obtener una lista completa de los extremos regionales, consulta extremos de servicios regionales.

Ubicación de los objetos binarios del agente invitado

En las siguientes tablas, se enumeran las rutas de acceso de los archivos para 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 archivos para 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 archivos para 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.
Se habilita 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.
Se habilita 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 llaves SSH, lo que 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?