Acerca do agente convidado


Este documento oferece uma vista geral da arquitetura do agente convidado. O agente de hóspedes é um componente essencial do ambiente de hóspedes. O ambiente convidado contém scripts, daemons e ficheiros binários que as instâncias precisam de executar no Compute Engine. Para mais informações, consulte o artigo Ambiente convidado.

O agente convidado configura serviços e define configurações mínimas para funcionalidades como a execução de scripts de instantâneos, a comutação por falha do Windows, o início de sessão no SO e a autenticação SSH baseada em metadados. Para mais informações sobre as funções principais do agente convidado, consulte o artigo 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. Esta evolução melhora a flexibilidade, a fiabilidade e a capacidade de expansão.

  • 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 juntamente com todas as instâncias do Compute Engine. Para mais informações sobre o servidor de metadados, consulte Metadados de VMs.

    O agente convidado envia pedidos longos ao servidor de metadados e toma medidas com base nas alterações de estado. Com esta arquitetura, o estado do agente é partilhado em todas as tarefas, como o SSH e a configuração de rede. Esta abordagem monolítica não tinha isolamento de componentes e de interface. As alterações ou as introduções de funcionalidades numa área do agente afetam todo o sistema em simultâneo. Este padrão torna os testes de cobertura e as adições de funcionalidades desafiadores.

  • Arquitetura baseada em plug-ins: a partir da versão 20250901.00, o agente convidado é dividido em plug-ins distintos e independentes geridos por um gestor central. Cada plug-in pode interagir com o servidor de metadados e, conforme indicado por um gestor central, faz as alterações necessárias. Esta abordagem modular garante que uma falha num plug-in não afeta o agente principal nem outros plug-ins.

A arquitetura baseada em plug-ins

Esta arquitetura é criada em torno de um gestor central que controla vários plug-ins, separando as funcionalidades principais dos plug-ins opcionais específicos do serviço.

Componentes principais

O diagrama seguinte mostra os componentes principais do agente convidado e as respetivas interações.

Um gestor de agentes convidados central controla um plug-in principal e plug-ins opcionais.
    O gestor de agentes convidados comunica com o plano de controlo de agentes no back-end da Google para gerir os plug-ins opcionais.
Figura 1. Arquitetura do agente convidado
  • Plugin principal: este plugin encapsula a funcionalidade do agente convidado original. Executa as tarefas essenciais de que a sua instância precisa para ser executada em Google Cloud. Estas incluem tarefas como as seguintes:

    • Configuração de rede: configura a interface de rede principal para permitir a comunicação.
    • Acesso SSH: gere as chaves SSH do utilizador para permitir ligações seguras à sua instância.
    • Acesso aos metadados: fornece um caminho para a instância aceder aos metadados da instância e do projeto.

    Não pode desativar o plugin principal.

    Para mais informações sobre as funções principais do agente convidado, consulte o artigo Funcionalidade do agente convidado.

  • Plug-ins opcionais: pode aprovisionar estes plug-ins para integrar com outros Google Cloud serviços para realizar tarefas como:

    • Monitorização e registo: ative o plug-in do agente de operações para recolher métricas e registos para o Cloud Monitoring.
    • Gestão de cargas de trabalho: ative o plug-in Workload Manager para recolher informações de configuração e de tempo de execução das suas cargas de trabalho para análise.
    • Otimização da carga de trabalho: ative o plug-in do agente SAP para suportar as suas cargas de trabalho SAP em execução no Google Cloud.

    Pode ativar ou desativar plug-ins opcionais conforme necessário.

  • Plano de controlo do agente: este serviço gerido Google Cloud é executado na infraestrutura de back-end da Google. O plano de controlo gere o ciclo de vida dos plug-ins opcionais, incluindo a respetiva instalação, atualizações e configuração, comunicando com o gestor de agentes convidados na instância.

  • Gestor de agentes convidados: este processo central inicia, para e monitoriza o estado de todos os plug-ins. O gestor de agentes convidados facilita a comunicação entre o plug-in principal e o plano de controlo do agente. A gestão do ciclo de vida dos plug-ins opcionais inclui o seguinte:

    • Instalação e atualizações: o gestor do agente convidado instala, inicia, para e configura plug-ins opcionais com base nas instruções do plano de controlo do agente.
    • Monitorização da saúde: o gestor do agente convidado monitoriza a saúde e o estado dos plug-ins opcionais, incluindo a utilização da CPU e da memória, e comunica estas informações ao plano de controlo do agente.
    • Gestão de políticas: use as APIs Compute Engine para criar políticas que controlam a instalação e o controlo 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. Estas vantagens incluem o seguinte:

  • Isolamento de plug-ins: cada plug-in é executado num processo separado, pelo que uma falha num deles não afeta o agente principal nem outros plug-ins.
  • Proteção de recursos: o agente convidado usa funcionalidades ao nível do SO para aplicar limites de recursos nos plug-ins, impedindo que qualquer plug-in consuma uma quantidade excessiva de CPU ou memória.
  • Recuperação automática de falhas: o sistema recupera automaticamente de uma falha do plug-in parando e reiniciando o plug-in.
  • Ativação seletiva: pode desativar plug-ins opcionais que não são necessários, o que lhe permite proteger ou otimizar a sua instância.
  • Sobrecarga reduzida para plug-ins opcionais: o gestor de agentes convidados processa automaticamente a instalação e as atualizações de plug-ins opcionais, o que reduz o esforço manual necessário para os manter atualizados.

Localização dos ficheiros binários do agente convidado

As tabelas seguintes indicam os caminhos dos ficheiros dos diferentes binários do agente convidado em instâncias do Linux e Windows, consoante a arquitetura.

Binários de agentes baseados em plug-ins

Esta tabela apresenta os caminhos dos ficheiros binários do agente convidado baseado em plug-ins em instâncias do Linux e Windows:

Componente Caminho no Linux Caminho no Windows
Gestor de agentes convidados /usr/bin/google_guest_agent_manager C:\ProgramData\Google\Compute Engine\google-guest-agent
Binário do plugin principal /usr/lib/google/guest_agent/core_plugin C:\Program Files\Google\Compute Engine\agent\CorePlugin.exe
Executador de scripts 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 seguinte apresenta os caminhos dos ficheiros dos binários do agente convidado monolítico em instâncias do Linux e 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
Executador de scripts de metadados /usr/bin/google_metadata_script_runner C:\Program Files\Google\Compute Engine\metadata_scripts\GCEMetadataScripts.exe
Chaves autorizadas Não aplicável C:\Program Files\Google\Compute Engine\agent\GCEAuthorizedKeys.exe

Retrocompatibilidade

Para garantir uma transição suave do agente convidado monolítico anterior para o sistema baseado em plug-ins, o pacote do agente convidado inclui vários componentes concebidos para compatibilidade com versões anteriores. Estes componentes não fazem parte da arquitetura baseada em plug-ins e são ativados apenas se optar manualmente por reverter para o agente monolítico definindo o atributo de metadados enable-guest-agent-core-plugin como false.

Os componentes que suportam esta compatibilidade incluem o seguinte:

  • Gestor de compatibilidade do agente convidado: este pacote gere a mudança entre o agente baseado em plug-ins e o agente monolítico.
  • Gestor de compatibilidade do executor de scripts de metadados: este pacote garante que o executor de scripts correto é usado, consoante o agente monolítico ou baseado em plug-ins esteja ativo.
  • Gestor de compatibilidade de chaves autorizadas (apenas para Windows): este pacote processa as chaves SSH, garantindo que são usadas as chaves corretas para o agente antigo ou novo.
Componente Caminho no Linux Caminho no Windows
Gestor de compatibilidade do agente convidado /usr/bin/google_guest_compat_manager C:\Program Files\Google\Compute Engine\agent\GCEWindowsCompatManager.exe
Gestor de compatibilidade do executor de scripts de metadados /usr/bin/metadata_script_runner_compat C:\Program Files\Google\Compute Engine\metadata_scripts\GCECompatMetadataScripts.exe
Gestor de compatibilidade de chaves autorizadas Não aplicável C:\Program Files\Google\Compute Engine\agent\GCEWindowsAuthorizedKeysCompat.exe

O que se segue?