Este documento fornece uma visão geral da arquitetura do agente convidado. O agente convidado é um componente essencial do ambiente de convidado. O ambiente convidado contém scripts, daemons e binários que as instâncias precisam para serem executadas no Compute Engine. Para mais informações, consulte Ambiente convidado.
O agente convidado configura serviços e define configurações mínimas para recursos como execução de script de snapshot, failover do Windows, login do SO e autenticação SSH baseada em metadados. Para mais informações sobre as funções principais do agente convidado, consulte Funcionalidade do agente convidado.
Arquitetura do agente convidado
A partir da versão 20250901.00, a arquitetura do agente convidado é
atualizada de um design monolítico para um sistema moderno baseado em plug-ins. Essa evolução melhora a flexibilidade, a confiabilidade e a extensibilidade.
- Arquitetura monolítica: os agentes convidados anteriores a - 20250901.00apresentam um único processo unificado centrado na descrição das instâncias do servidor de metadados. O servidor de metadados é um servidor HTTP por instância que é executado ao lado de cada instância do Compute Engine. Para mais informações sobre o servidor de metadados, consulte Metadados da VM.- O agente convidado faz uma pesquisa longa no servidor de metadados e realiza ações com base nas mudanças de estado. Com essa arquitetura, o estado do agente é compartilhado em todas as tarefas, como SSH e configuração de rede. Essa abordagem monolítica não tinha isolamento de interface e componente. Mudanças ou introduções de recursos em uma área do agente afetam todo o sistema simultaneamente. Esse padrão dificulta a adição de recursos e a cobertura de testes. 
- Arquitetura baseada em plug-ins: a partir da versão - 20250901.00, o agente convidado é dividido em plug-ins distintos e independentes gerenciados por um gerenciador central. Cada plug-in pode interagir com o servidor de metadados e, conforme orientado por um gerente central, faz mudanças conforme necessário. Essa abordagem modular garante que uma falha em um plug-in não afete o agente principal nem outros plug-ins.
Arquitetura baseada em plug-ins
Essa arquitetura é criada em torno de um gerenciador central que controla vários plug-ins, separando as funcionalidades principais dos plug-ins opcionais específicos do serviço.
Principais componentes
O diagrama a seguir mostra os principais componentes do agente convidado e as interações deles.
- Plug-in principal: encapsula a funcionalidade do agente convidado original. Ele realiza as tarefas essenciais para que sua instância seja executada em Google Cloud. Isso inclui tarefas como: - Configuração de rede: configura a interface de rede principal para permitir a comunicação.
- Acesso SSH: gerencia as chaves SSH do usuário para permitir conexões seguras com sua instância.
- Acesso a metadados: fornece um caminho para a instância acessar metadados da instância e do projeto.
 - Não é possível desativar o plug-in principal. - Para mais informações sobre as funções principais do agente convidado, consulte Funcionalidade do agente convidado. 
- Plug-ins opcionais: é possível provisionar esses plug-ins para integrar com outros serviços doGoogle Cloud e realizar tarefas como: - Monitoramento e geração de registros: ative o plug-in do agente de operações para coletar métricas e registros do Cloud Monitoring.
- Gerenciamento de carga de trabalho: ative o plug-in do Workload Manager para coletar informações de configuração e de tempo de execução das suas cargas de trabalho para análise.
- Otimização de carga de trabalho: ative o plug-in do agente SAP para oferecer suporte às cargas de trabalho SAP em execução no Google Cloud.
 - É possível ativar ou desativar plug-ins opcionais conforme necessário. 
- Plano de controle do agente: esse serviço Google Cloud gerenciado é executado na infraestrutura de back-end do Google. O plano de controle gerencia o ciclo de vida de plug-ins opcionais, incluindo instalação, atualizações e configuração, ao se comunicar com o gerenciador de agentes convidados na instância. 
- Gerenciador de agentes convidados: esse processo central inicia, interrompe e monitora o status de todos os plug-ins. O gerenciador de agentes convidados facilita a comunicação entre o plug-in principal e o plano de controle do agente. O gerenciamento do ciclo de vida dos plug-ins opcionais inclui o seguinte: - Instalação e atualizações: o gerenciador do agente convidado instala, inicia, para e configura plug-ins opcionais com base nas instruções do plano de controle do agente.
- Monitoramento de integridade: o gerenciador de agentes convidados monitora a integridade e o status de plug-ins opcionais, incluindo o uso de CPU e memória, e informa essas informações ao plano de controle do agente.
- Gerenciamento de políticas: use as APIs do Compute Engine para criar políticas que controlam a instalação e o controle de versões de plug-ins opcionais.
 
Vantagens
A arquitetura baseada em plug-ins oferece várias vantagens em relação ao design monolítico. Esses benefícios incluem:
- Isolamento de plug-ins: cada plug-in é executado em um processo separado. Assim, uma falha em um deles não afeta o agente principal nem outros plug-ins.
- Proteção de recursos: o agente convidado usa recursos no nível do SO para aplicar limites de recursos aos plug-ins, impedindo que um único plug-in consuma CPU ou memória em excesso.
- Recuperação automática de falhas: o sistema se recupera automaticamente de uma falha de plug-in interrompendo e reiniciando o plug-in.
- Ativação seletiva: é possível desativar plug-ins opcionais que não são necessários, o que permite proteger ou otimizar sua instância.
- Redução da sobrecarga para plug-ins opcionais: o gerenciador de agentes convidados processa automaticamente a instalação e as atualizações de plug-ins opcionais, reduzindo o esforço manual necessário para mantê-los atualizados.
Localização dos binários do agente convidado
As tabelas a seguir listam os caminhos de arquivo dos diferentes binários do agente convidado em instâncias do Linux e do Windows, dependendo da arquitetura.
Binários de agentes baseados em plug-ins
Esta tabela lista os caminhos de arquivo dos binários do agente convidado baseados em plug-in em instâncias do Linux e do Windows:
| Componente | Caminho no Linux | Caminho no Windows | 
|---|---|---|
| Gerente de agente convidado | /usr/bin/google_guest_agent_manager | C:\ProgramData\Google\Compute Engine\google-guest-agent | 
| Binário do plug-in principal | /usr/lib/google/guest_agent/core_plugin | C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe | 
| Executor de script de metadados | /usr/bin/gce_metadata_script_runner | C:\Program Files\Google\Compute Engine\agent\GCEMetadataScriptRunner.exe | 
Binários de agentes monolíticos
A tabela a seguir lista os caminhos de arquivo para os binários do agente convidado monolítico em instâncias do Linux e do Windows:
| Componente | Caminho no Linux | Caminho no Windows | 
|---|---|---|
| Agente convidado | /usr/bin/google_guest_agent | C:\Program Files\Google\Compute Engine\google_guest_agent.exe | 
| Executor de script de metadados | /usr/bin/google_metadata_script_runner | C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe | 
| Chaves autorizadas | Não relevante | C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe | 
Compatibilidade com versões anteriores
Para garantir uma transição tranquila do agente convidado monolítico anterior para o
sistema baseado em plug-ins, o pacote do agente convidado inclui vários componentes
projetados para compatibilidade com versões anteriores. Esses componentes não fazem parte da arquitetura baseada em plug-ins e são ativados somente se você escolher manualmente reverter para o agente monolítico definindo o atributo de metadados enable-guest-agent-core-plugin como false.
Os componentes que oferecem suporte a essa compatibilidade incluem:
- Gerenciador de compatibilidade do agente convidado: esse pacote gerencia a troca entre o agente baseado em plug-in e o agente monolítico.
- Gerenciador de compatibilidade do executor de scripts de metadados: esse pacote garante que o executor de scripts correto seja usado, dependendo se o agente monolítico ou baseado em plug-in está ativo.
- Gerenciador de compatibilidade de chaves autorizadas (somente Windows): esse pacote processa chaves SSH, garantindo que as chaves corretas sejam usadas para o agente antigo ou novo.
| Componente | Caminho no Linux | Caminho no Windows | 
|---|---|---|
| Gerenciador de compatibilidade do agente convidado | /usr/bin/google_guest_compat_manager | C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe | 
| Gerenciador de compatibilidade do executor de script de metadados | /usr/bin/metadata_script_runner_compat | C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe | 
| Gerenciador de compatibilidade de chaves autorizadas | Não relevante | C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe | 
A seguir
- Para mais informações sobre as funções principais do plug-in, consulte Funcionalidade do agente convidado