Sobre o agente convidado


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.00 apresentam 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.

Um gerenciador central de agentes convidados controla um plug-in principal e outros opcionais.
    O gerenciador de agentes convidados se comunica com o plano de controle do agente no back-end do Google
    para gerenciar os plug-ins opcionais.
Figura 1. Arquitetura do agente convidado
  • Plug-in principal: encapsula a funcionalidade do agente convidado original. Ele realiza as tarefas essenciais para que sua instância seja executada no 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 agente 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