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.00cuentan 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.
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:
- Supervisión y registro: Habilita el agente de operaciones para recopilar métricas y registros para Cloud Monitoring. Para obtener más información, consulta Instala y administra el Agente de operaciones con las políticas del Gestor de extensiones de VM.
- Administración de cargas de trabajo: Habilita el Agente de cargas de trabajo de procesamiento para recopilar información de configuración y de tiempo de ejecución de tus cargas de trabajo para el análisis. Para obtener más información, consulta Descripción general del Agente de cargas de trabajo de procesamiento.
- Optimización de cargas de trabajo: Habilita el Agente de SAP para admitir tus cargas de trabajo de SAP que se ejecutan en Google Cloud. Para obtener más información, consulta Instala y administra el Agente de SAP en una flota de VMs.
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?
- Para obtener más información sobre las funciones principales del complemento, consulta Funcionalidad del agente invitado