En este documento se ofrece una descripción general de las funciones principales del agente invitado, un componente fundamental del entorno invitado. El entorno invitado contiene secuencias de comandos, daemons y archivos binarios que las instancias necesitan para ejecutarse en Compute Engine. Para obtener más información, consulta Entorno de invitado.
Cómo funciona el agente invitado
A partir de la versión 20250901.00
, el agente invitado usa una arquitectura basada en complementos. Este diseño mejora la fiabilidad y la flexibilidad
al separar las funciones del agente en componentes distintos.
La arquitectura del agente invitado consta de varios componentes clave:
- Gestor de agentes invitados: el proceso central de tu instancia que inicia, detiene y monitoriza todos los complementos.
- Complemento principal: este complemento gestiona los servicios esenciales que necesita tu instancia para ejecutarse en Google Cloud. No se puede inhabilitar.
- Complementos opcionales: son complementos que integran tu instancia con otros servicios, como Cloud Monitoring. Google Cloud Puedes controlar qué complementos se ejecutan en tu instancia.
- Plano de control del agente: es un servicio gestionado Google Cloud que se ejecuta en la infraestructura de backend de Google y gestiona el ciclo de vida de los complementos opcionales, incluidas su instalación y sus actualizaciones.
Para obtener más información sobre la arquitectura del agente invitado, consulta Acerca del agente invitado.
Función principal
El complemento principal se encarga de los servicios fundamentales que necesita tu instancia para funcionar en Compute Engine. En la siguiente sección se detallan las funciones que proporciona el complemento principal. Puedes personalizar muchas de estas funciones con el archivo de configuración del agente invitado.
Configuración inicial de la instancia y optimizaciones
El agente invitado realiza varias tareas de configuración para preparar la instancia para que se ejecute en Compute Engine. Como se muestra en la siguiente tabla, algunas tareas solo se ejecutan en el primer arranque, mientras que otras se ejecutan en cada inicio.
Tarea | Frecuencia |
---|---|
Generar claves de host SSH | En el primer arranque |
Crea el archivo de configuración boto para usar Cloud Storage |
En el primer arranque |
Optimizar para SSD local | En cada inicio |
Habilitar la multicola en todos los dispositivos virtionet |
En cada inicio |
Puedes controlar estas tareas de configuración ajustando las InstanceSetup
opciones del archivo de configuración del agente invitado. Por ejemplo, puedes inhabilitar la optimización de SSD local configurando optimize_local_ssd = false
.
Recogida de telemetría del sistema
El agente invitado registra información básica de telemetría del sistema en el momento del arranque y, después, una vez cada 24 horas. La información registrada incluye lo siguiente:
- Versión y arquitectura del agente invitado
- Nombre y versión del sistema operativo
- Versión y lanzamiento del kernel del sistema operativo
Para inhabilitar la recogida de telemetría, asigna el valor true
a la clave de metadatos disable-guest-telemetry
. Para definir metadatos, consulta Definir y quitar metadatos personalizados.
Sincronización del reloj (solo en Linux)
Para que el registro de la hora sea preciso, el agente invitado usa el componente clock_skew_daemon
para corregir periódicamente el reloj de tu instancia y que coincida con el
servidor físico en el que se ejecuta. Este proceso evita un problema llamado desfase de reloj y genera un mensaje system time has changed
en los registros de tu instancia, lo que confirma que la hora se ha sincronizado correctamente.
Normalmente, el agente sincroniza el reloj después de un evento de inicio o de parada, o después de una migración.
Puedes inhabilitar el componente clock_skew_daemon
configurando
clock_skew_daemon = false
en el archivo de configuración del agente invitado.
Ejecución de secuencias de comandos de metadatos
Puedes usar secuencias de comandos de inicio y secuencias de comandos de apagado para realizar tareas automatizadas cada vez que se inicie o se detenga tu instancia.
El agente invitado ayuda a ejecutar estas secuencias de comandos de la siguiente manera:
- Ejecuta secuencias de comandos en un shell.
- Si especifica varias secuencias de comandos (por ejemplo, si usa
startup-script
ystartup-script-url
), el agente ejecutará ambas. - Cuando se proporcionan varias secuencias de comandos para el mismo evento, el agente ejecuta primero la secuencia de comandos de la URL.
- Cuando finaliza una secuencia de comandos, el agente registra su estado de salida.
Para configurar la ejecución de secuencias de comandos de metadatos, modifica las opciones de MetadataScripts
en el archivo de configuración del agente invitado.
Gestión de cuentas de usuario y claves SSH
El agente invitado usa un accounts_daemon
para gestionar las cuentas de usuario locales y las claves SSH, que controlan el acceso a la instancia.
El comportamiento específico varía entre los sistemas operativos Linux y Windows.
Puedes modificar las opciones de gestión de cuentas configurando las opciones Accounts
en el archivo de configuración del agente invitado.
Linux
OS Login se usa para gestionar el acceso SSH a tus instancias mediante IAM sin tener que crear ni gestionar claves SSH individuales. Para obtener más información sobre OS Login, consulta OS Login. En las instancias de Linux, si no se ha habilitado el inicio de sesión del SO, el agente crea y gestiona cuentas de usuario locales y sus claves SSH mediante ajustes de metadatos.
Cuando añades o quitas claves SSH de los metadatos de la instancia o del proyecto, el agente invitado crea o elimina una cuenta de usuario local. El agente invitado también realiza las siguientes acciones para gestionar estas cuentas de usuario locales:
- Mantiene el archivo
authorized_keys
de cada cuenta de usuario que gestiona de la siguiente manera:- Cuando añades claves SSH a los metadatos, el agente crea un archivo
authorized_keys
para la cuenta de usuario. - Cuando eliminas todas las claves SSH de un usuario de los metadatos, el agente elimina el archivo
authorized_keys
de la cuenta de ese usuario.
- Cuando añades claves SSH a los metadatos, el agente crea un archivo
- Gestiona los privilegios de administrador mediante el grupo de Linux
google-sudoers
. Cualquier miembro de este grupo recibe permisos de sudo en la instancia. - Añade todas las cuentas de usuario que aprovisiona al grupo
google-sudoers
. - Añade cuentas de usuario a los grupos de Linux adicionales que especifiques en la opción
groups
del archivo de configuración del agente invitado.
Windows
En las instancias de Windows, el agente crea automáticamente cuentas de usuario locales para cualquier cuenta de usuario SSH especificada en las claves SSH de metadatos a nivel de instancia o de proyecto. El agente invitado también se encarga de crear cuentas de usuario y de definir o restablecer contraseñas. Estas cuentas de usuario locales son necesarias para conectarse a instancias de Windows mediante SSH.
Para evitar que se aprovisionen usuarios de AD por error, puedes inhabilitar el gestor de cuentas en la instancia del controlador de AD. Para obtener más información sobre cómo configurar AD en Compute Engine, consulta el artículo sobre cómo implementar controladores de dominio.
Configuración de OS Login (solo Linux)
OS Login se usa para gestionar el acceso SSH a tus instancias mediante IAM sin tener que crear ni gestionar claves SSH individuales. Para obtener más información sobre OS Login, consulta la documentación de OS Login.
Cuando habilitas OS Login, el agente invitado se encarga de configurar la instancia para que use OS Login.
El agente invitado configura OS Login completando las siguientes tareas:
- Añade un bloque de configuración de Google al archivo de configuración
SSHD
y reiniciaSSHD
. - Añade entradas de OS Login al archivo
nsswitch.conf
. - Añade entradas de OS Login al archivo de configuración
PAM
deSSHD
.
Si inhabilitas OS Login, se eliminarán los cambios de configuración. Las opciones de la sección Accounts
del archivo de configuración SSHD
no se aplican a los usuarios de inicio de sesión del SO.
Gestión de redes
El agente invitado configura automáticamente las interfaces de red de tu instancia al arrancar. Lee la configuración de la red del servidor de metadatos para asegurarse de que tu instancia se conecta a la red correctamente y puede acceder a otros servicios de Google Cloud.
Puedes controlar el comportamiento de gestión de redes del agente configurando las opciones NetworkInterfaces
en el archivo de configuración del agente invitado. Por ejemplo, puedes definir la opción manage_primary_nic = true
para que el agente gestione la tarjeta de interfaz de red (NIC) principal, además de las NICs secundarias.
En cada arranque, el agente invitado realiza las siguientes tareas clave:
- Habilita interfaces de red: el agente detecta el gestor de redes activo en tu sistema operativo y lo usa para habilitar todas las NIC de red secundarias.
- Configura rutas IP: el agente configura las rutas IP necesarias (solo IPv4) para funciones como el reenvío de IP y los intervalos de IP de alias de la siguiente manera:
- Define rutas en la interfaz Ethernet principal.
- Configura las rutas de Google de forma predeterminada con el ID de protocolo de enrutamiento
66
. Este ID es un espacio de nombres para las direcciones IP configuradas del agente invitado. Este ID se puede cambiar mediante la opciónethernet_proto_id
del archivo de configuración del agente invitado.
- Crea una ruta al servidor de metadatos: el agente se asegura de que tu NIC principal siempre pueda comunicarse con el servidor de metadatos para obtener información de la instancia.
- Configuración de VLAN: si tu instancia está configurada para conectarse a una red de área local virtual (VLAN), el agente invitado se encarga automáticamente de la configuración. Lee la configuración de VLAN del servidor de metadatos y configura la interfaz de red de la instancia para que use la etiqueta de VLAN correcta. De esta forma, la instancia se comunica en la red lógica prevista. Es importante tener en cuenta que, si la VLAN está vinculada a la NIC principal, el agente invitado la configura aunque
manage_primary_nic
esté inhabilitado.
Selección de administrador de redes
En Linux, el agente invitado detecta automáticamente qué gestor de redes está disponible en el sistema y lo usa para configurar las interfaces de red. El agente comprueba si hay gestores compatibles por orden de prioridad, de netplan
a dhclient
.
En la siguiente tabla se enumeran los gestores de redes compatibles, organizados por el sistema operativo con el que se asocian de forma predeterminada. La configuración de tu instancia específica puede ser diferente, pero esta tabla refleja el gestor de redes predeterminado de los sistemas operativos indicados.
Administrador de redes | Sistema operativo | Ubicación de la configuración | Ruta de ejemplo | Notas |
---|---|---|---|---|
netplan |
|
/run/netplan/ |
/run/netplan/20-google-guest-agent-eth0.yaml |
El agente también puede usar una ubicación de visita en /etc/systemd/network/ |
wicked |
|
/etc/sysconfig/network/ |
/etc/sysconfig/network/ifcfg-eth0 |
Los archivos ifcfg no se sobrescriben, sino que se omiten. |
NetworkManager |
|
/etc/NetworkManager/system-connections/ |
/etc/NetworkManager/system-connections/google-guest-agent-eth0.nmconnection |
|
systemd-networkd |
|
/usr/lib/systemd/network/ |
/usr/lib/systemd/network/20-eth0-google-guest-agent.network |
|
dhclient |
|
/run/ |
/run/dhclient.google-guest-agent.eth0.ipv4.pid |
Si no se detecta ningún otro gestor de redes, el agente invitado usará dhclient de forma predeterminada. |
Gestión segura de credenciales del servidor de metadatos (MDS)
Las máquinas virtuales protegidas ahora admiten la comunicación segura con el servidor de metadatos mediante el endpoint HTTPS https://metadata.google.internal/computeMetadata/v1
. Esta mejora proporciona un canal más seguro para acceder a los metadatos.
Para habilitar esta comunicación segura, el agente invitado recupera y almacena las credenciales necesarias en el disco de la instancia. Estas credenciales se guardan en una ubicación estándar, lo que permite que cualquier aplicación cliente que se ejecute en la instancia pueda acceder a ellas. Para consultar estas ubicaciones, consulta Dónde se almacenan los certificados.
La configuración de los certificados HTTPS MDS está inhabilitada de forma predeterminada. Para que tus VMs protegidas configuren automáticamente los certificados HTTPS MDS, asigna el valor false
a la clave de metadatos disable-https-mds-setup
en tu instancia o proyecto.
Para definir metadatos, consulta Definir y quitar metadatos personalizados.
La gestión de credenciales por parte del agente invitado incluye lo siguiente:
- Actualización inicial: tanto el certificado raíz como las credenciales de cliente se actualizan cada vez que se inicia el proceso del agente invitado.
- Actualización automática: para mejorar la seguridad, el agente invitado actualiza automáticamente las credenciales del cliente cada 48 horas.
- Periodo de solapamiento: el agente genera y guarda nuevas credenciales mientras las antiguas siguen siendo válidas. El periodo de solapamiento asegura que los clientes tengan tiempo suficiente para cambiar a las nuevas credenciales antes de que caduquen las antiguas. Este periodo de solapamiento también permite que el agente vuelva a intentar obtener las credenciales en caso de que falle, lo que asegura que haya credenciales válidas antes de que las actuales dejen de serlo.
- Composición: el agente invitado se asegura de que las credenciales del cliente consten de una clave privada EC (curva elíptica) concatenada con el certificado del cliente.
- Unicidad: el agente invitado se asegura de que las credenciales sean únicas para una instancia y no se puedan usar en otro lugar.
Para obtener más información sobre el endpoint del servidor de metadatos HTTPS, consulta Información sobre el endpoint del servidor de metadatos HTTPS.
De forma predeterminada, el agente invitado escribe los certificados directamente en el disco. Sin embargo, puedes configurar el agente para que integre los certificados en los almacenes de certificados integrados del sistema operativo. Para habilitar esta integración, asigna el valor true
a la clave de metadatos enable-https-mds-native-cert-store
. Para definir metadatos, consulta Definir y quitar metadatos personalizados.
El comportamiento del agente al añadir certificados a los almacenes de confianza del SO varía en función del SO, como se indica a continuación:
Linux
El agente invitado sigue estos pasos:
- Añade el certificado raíz de MDS al almacén de confianza del sistema. La ruta específica depende de la distribución del SO. Para revisar estas ubicaciones, consulta Almacenamiento de certificados raíz en el almacén de confianza del SO.
- Actualiza el almacén de confianza local ejecutando el comando adecuado para el sistema operativo, como
update-ca-certificates
oupdate-ca-trust
.
Windows
El agente añade las credenciales de cliente a Cert:\LocalMachine\My
y el certificado raíz a Cert:\LocalMachine\Root
.
Compatibilidad con clústeres de conmutación por error de Windows (solo en Windows)
El agente invitado monitoriza el nodo activo del clúster de conmutación por error de Windows Server y se coordina con el balanceador de carga interno Google Cloud para reenviar todo el tráfico del clúster al nodo esperado.
Puede controlar este comportamiento mediante los siguientes campos en los metadatos de la instancia o en el archivo instance_configs.cfg
:
enable-wsfc
: si se define comotrue
, el agente ignora toda la información de reenvío de IP y empieza a responder al puerto de comprobación de estado. El ajuste predeterminado esfalse
.wsfc-agent-port
: especifica el puerto en el que el agente responde a las comprobaciones de estado. El valor predeterminado es59998
.wsfc-addrs
: una lista de direcciones IP separadas por comas. Este ajuste avanzado te permite tener tanto IPs de reenvío normales como IPs de clúster en la misma instancia. Cuando lo hagas, el agente solo omitirá la configuración automática de las IPs de esta lista. De forma predeterminada, este valor no está definido.
Siguientes pasos
- Para saber cómo gestionar el agente invitado, consulta Configurar el agente invitado.