Este documento oferece uma vista geral da funcionalidade essencial do agente convidado, um componente crítico do ambiente convidado. 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.
Como funciona o agente convidado
A partir da versão 20250901.00
, o agente convidado usa uma arquitetura baseada em plug-ins. Este design melhora a fiabilidade e a flexibilidade, separando as funções do agente em componentes distintos.
A arquitetura do agente convidado é composta por alguns componentes principais:
- Gestor de agentes convidados: o processo central na sua instância que inicia, para e monitoriza todos os plug-ins.
- Plugin principal: este plugin processa os serviços essenciais de que a sua instância precisa para ser executada Google Cloud. Não é possível desativar a respetiva funcionalidade.
- Plug-ins opcionais: estes são plug-ins que integram a sua instância com outros Google Cloud serviços, como o Cloud Monitoring. Pode controlar qual destes plug-ins é executado na sua instância.
- Plano de controlo do agente: trata-se de um serviço gerido Google Cloud que é executado na infraestrutura de back-end da Google e gere o ciclo de vida dos plug-ins opcionais, incluindo a respetiva instalação e atualizações.
Para mais informações sobre a arquitetura do agente convidado, consulte o artigo Acerca do agente convidado.
Funcionalidade essencial
O plug-in principal é responsável pelos serviços fundamentais de que a sua instância precisa para funcionar no Compute Engine. A secção seguinte detalha as funções fornecidas pelo plug-in principal. Pode personalizar muitas destas funcionalidades através do ficheiro de configuração do agente convidado.
Configuração e otimizações iniciais da instância
O agente convidado executa várias tarefas de configuração para preparar a instância para execução no Compute Engine. Conforme mostrado na tabela seguinte, algumas tarefas são executadas apenas no primeiro arranque, enquanto outras são executadas em todos os arranques.
Tarefa | Frequência |
---|---|
Gere chaves de anfitrião SSH | No primeiro arranque |
Crie a configuração boto para usar o Cloud Storage |
No primeiro arranque |
Otimize para o SSD local | Em cada arranque |
Ative a funcionalidade de várias filas em todos os dispositivos virtionet |
Em cada arranque |
Pode controlar estas tarefas de configuração configurando as
InstanceSetup
opções
do ficheiro de configuração do agente convidado. Por exemplo, pode desativar a otimização do SSD local definindo optimize_local_ssd = false
.
Recolha de telemetria do sistema
O agente convidado regista algumas informações básicas de telemetria do sistema no momento do arranque e, em seguida, uma vez a cada 24 horas. As informações registadas incluem o seguinte:
- Versão e arquitetura do agente convidado
- Nome e versão do sistema operativo
- Versão e lançamento do kernel do sistema operativo
Pode desativar a recolha de telemetria definindo a chave de metadados disable-guest-telemetry
como true
. Para definir metadados, consulte o artigo
Defina e remova metadados personalizados.
Sincronização do relógio (apenas no Linux)
Para garantir uma indicação precisa da hora, o agente convidado usa o componente clock_skew_daemon
para corrigir periodicamente o relógio na sua instância de modo a corresponder ao servidor físico no qual é executado. Este processo evita um problema denominado diferença de tempo
e gera uma mensagem system time has changed
nos registos da sua instância, que
confirma que a hora foi sincronizada com êxito.
Normalmente, o agente sincroniza o relógio após um evento de paragem ou início, ou após uma migração.
Pode desativar o componente clock_skew_daemon
definindo clock_skew_daemon = false
no ficheiro de configuração do agente convidado.
Execução de scripts de metadados
Pode usar scripts de arranque e scripts de encerramento para realizar tarefas automatizadas sempre que a instância é iniciada ou parada.
O agente convidado ajuda na execução destes scripts da seguinte forma:
- Executa scripts numa shell.
- Se especificar vários scripts (por exemplo, se usar
startup-script
estartup-script-url
), o agente executa ambos. - Quando são fornecidos vários scripts para o mesmo evento, o agente executa primeiro o script do URL.
- Depois de um script terminar, o agente regista o respetivo estado de saída.
Pode configurar a execução de scripts de metadados modificando as
MetadataScripts
opções
no ficheiro de configuração do agente convidado.
Gestão de contas de utilizador e chaves SSH
O agente convidado usa um accounts_daemon
para gerir contas de utilizadores locais e chaves SSH, que controlam o acesso à instância.
O comportamento específico varia entre os sistemas operativos Linux e Windows.
Pode modificar as opções de gestão de contas configurando as opções Accounts
no ficheiro de configuração do agente convidado.
Linux
O Início de sessão do SO é usado para gerir o acesso SSH às suas instâncias através do IAM sem ter de criar e gerir chaves SSH individuais. Para mais informações sobre o Início de sessão do SO, consulte o artigo Início de sessão do SO. Em instâncias do Linux, se o Início de sessão do SO não estiver ativado, o agente cria e gere contas de utilizador locais e respetivas chaves SSH através das definições de metadados.
Quando adiciona ou remove chaves SSH dos metadados da instância ou do projeto, o agente convidado cria ou elimina uma conta de utilizador local. O agente convidado também realiza as seguintes ações para gerir estas contas de utilizador local:
- Mantém o ficheiro
authorized_keys
para cada conta de utilizador que gere da seguinte forma:- Quando adiciona chaves SSH aos metadados, o agente cria um ficheiro para a conta de utilizador.
authorized_keys
- Quando remove todas as chaves SSH de um utilizador dos metadados, o agente elimina o ficheiro
authorized_keys
da conta desse utilizador.
- Quando adiciona chaves SSH aos metadados, o agente cria um ficheiro para a conta de utilizador.
- Gerir privilégios de administrador através do grupo
google-sudoers
Linux. Todos os membros deste grupo recebem autorizações sudo na instância. - Adiciona todas as contas de utilizador que aprovisiona ao grupo
google-sudoers
. - Adiciona contas de utilizador a quaisquer grupos Linux adicionais que especificar na opção
groups
do ficheiro de configuração do agente convidado.
Windows
Em instâncias do Windows, o agente cria automaticamente contas de utilizador locais para qualquer conta de utilizador SSH especificada nas chaves SSH de metadados ao nível da instância ou do projeto. O agente convidado também processa a criação de contas de utilizador e a definição ou a reposição de palavras-passe. Estas contas de utilizador local são necessárias para estabelecer ligação a instâncias do Windows através do SSH.
Pode impedir o aprovisionamento não intencional de utilizadores do AD desativando o gestor da conta na instância do controlador do AD. Para mais informações sobre a configuração do AD no Compute Engine, consulte o artigo sobre a implementação de controladores de domínio.
Configuração do Início de sessão do SO (apenas Linux)
O Início de sessão do SO é usado para gerir o acesso SSH às suas instâncias através do IAM sem ter de criar e gerir chaves SSH individuais. Para mais informações sobre o Início de sessão do SO, consulte a documentação do Início de sessão do SO.
Quando ativa o Início de sessão do SO, o agente convidado é responsável por configurar a instância para usar o Início de sessão do SO.
O agente convidado configura o Início de sessão do SO concluindo as seguintes tarefas:
- Adiciona um bloco de configuração do Google ao ficheiro de configuração
SSHD
e reinicia oSSHD
. - Adiciona entradas de início de sessão do SO ao ficheiro
nsswitch.conf
. - Adiciona entradas de Início de sessão do SO ao ficheiro de configuração
PAM
paraSSHD
.
Se desativar o início de sessão no SO, as alterações de configuração são removidas. As opções na secção Accounts
do ficheiro de configuração não se aplicam aos utilizadores do Início de sessão do SO.SSHD
Gestão de redes
O agente convidado configura automaticamente as interfaces de rede da instância no arranque. Lê a configuração de rede do servidor de metadados para garantir que a sua instância se liga corretamente à rede e pode aceder a outros serviços do Google Cloud.
Pode controlar o comportamento de gestão de rede do agente configurando as
opçõesNetworkInterfaces
no ficheiro de configuração do agente convidado. Por exemplo, pode definir a opção manage_primary_nic = true
para que o agente faça a gestão da placa de rede (NIC) principal, além das NICs secundárias.
Em cada arranque, o agente de hóspedes realiza as seguintes tarefas principais:
- Ativa interfaces de rede: o agente deteta o gestor de rede ativo no seu SO e usa-o para ativar todas as NICs de rede secundárias.
- Configura rotas de IP: o agente configura as rotas de IP (apenas IPv4) necessárias para funcionalidades como o encaminhamento de IP e os intervalos de IP de alias da seguinte forma:
- Define rotas na interface Ethernet principal.
- Configura as rotas da Google por predefinição, com o ID do protocolo de encaminhamento
66
. Este ID é um espaço de nomes para endereços IP configurados do agente convidado. Pode alterar este ID através da opçãoethernet_proto_id
no ficheiro de configuração do agente convidado.
- Cria uma rota para o servidor de metadados: o agente garante que a NIC principal consegue sempre comunicar com o servidor de metadados para obter informações da instância.
- Configuração de VLAN: se a sua instância estiver configurada para estabelecer ligação a uma
rede local virtual (VLAN),
o agente convidado processa automaticamente a configuração. Lê a configuração de VLAN do servidor de metadados e configura a interface de rede na instância para usar a etiqueta de VLAN correta. Isto garante que a instância comunica na rede lógica pretendida. É importante notar que, se a VLAN estiver anexada à NIC principal, o agente convidado configura-a mesmo que o
manage_primary_nic
esteja desativado.
Seleção do gestor de redes
No Linux, o agente convidado deteta automaticamente o gestor de rede disponível no sistema e usa-o para configurar as interfaces de rede. O agente verifica os gestores suportados por ordem de prioridade, de netplan
a
dhclient
.
A tabela seguinte apresenta os gestores de rede suportados, organizados pelo sistema operativo ao qual estão mais frequentemente associados por predefinição. A configuração da instância específica pode ser diferente, mas esta tabela reflete o gestor de rede predefinido para os sistemas operativos indicados.
Gestor de redes | Sistema operativo | Localização da configuração | Exemplo de caminho | Notas |
---|---|---|---|---|
netplan |
|
/run/netplan/ |
/run/netplan/20-google-guest-agent-eth0.yaml |
O agente também pode usar uma localização de entrada em
/etc/systemd/network/ |
wicked |
|
/etc/sysconfig/network/ |
/etc/sysconfig/network/ifcfg-eth0 |
Os ficheiros ifcfg existentes não são substituídos e são ignorados. |
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 |
Se nenhum dos outros gestores de rede for detetado, o agente convidado usa dhclient por predefinição. |
Gestão segura de credenciais do servidor de metadados (MDS)
As VMs protegidas suportam agora a comunicação segura com o servidor de metadados através do ponto final HTTPS https://metadata.google.internal/computeMetadata/v1
. Esta melhoria oferece um canal mais seguro para o acesso aos metadados.
Para ativar esta comunicação segura, o agente convidado obtém e armazena as credenciais necessárias no disco da instância. Estas credenciais são guardadas numa localização padrão, o que as torna acessíveis a qualquer aplicação cliente em execução na instância. Para rever estas localizações, consulte o artigo Onde são armazenados os certificados.
A configuração de certificados MDS HTTPS está desativada por predefinição. Para que as VMs protegidas configurem automaticamente os certificados MDS HTTPS, defina a chave de metadados disable-https-mds-setup
como false
na sua instância ou projeto.
Para definir metadados, consulte o artigo
Defina e remova metadados personalizados.
A gestão de credenciais pelo agente convidado inclui:
- Atualização inicial: o certificado de raiz e as credenciais do cliente são atualizados sempre que o processo do agente convidado é iniciado.
- Atualização automática: para maior segurança, o agente convidado atualiza automaticamente as credenciais do cliente a cada 48 horas.
- Período de sobreposição: o agente gera e guarda novas credenciais enquanto as antigas permanecem válidas. O período de sobreposição garante que os clientes têm tempo suficiente para fazer a transição para as novas credenciais antes de as antigas expirarem. Este período de sobreposição também permite que o agente tente novamente a aquisição de credenciais em caso de falha, garantindo que existem credenciais válidas antes de as existentes ficarem inválidas.
- Composição: o agente convidado garante que as credenciais do cliente consistem numa chave privada EC (curva elíptica) concatenada com o certificado de cliente.
- Unicidade: o agente convidado garante que as credenciais são exclusivas de uma instância e não podem ser usadas noutro local.
Para mais informações sobre o ponto final do servidor de metadados HTTPS, consulte o artigo Acerca do ponto final do servidor de metadados HTTPS.
Por predefinição, o agente convidado escreve certificados diretamente no disco. No entanto, pode configurar o agente para integrar certificados nas lojas de certificados incorporadas do sistema operativo. Para ativar esta integração, defina a chave de metadados enable-https-mds-native-cert-store
como true
. Para definir metadados, consulte o artigo
Defina e remova metadados personalizados.
O comportamento do agente para adicionar certificados a repositórios fidedignos do SO varia consoante o SO, da seguinte forma:
Linux
O agente convidado executa os seguintes passos:
- Adiciona o certificado de raiz do MDS ao repositório fidedigno do sistema. O caminho específico depende da distribuição do SO. Para rever estas localizações, consulte o artigo Armazenamento de certificados de raiz na loja de confiança do SO.
- Atualiza o repositório de confiança local executando o comando adequado para o SO, como
update-ca-certificates
ouupdate-ca-trust
.
Windows
O agente adiciona credenciais de cliente a Cert:\LocalMachine\My
e o certificado de raiz a Cert:\LocalMachine\Root
.
Suporte de cluster de comutação por falha do Windows (apenas para Windows)
O agente convidado monitoriza o nó ativo no cluster de failover do Windows Server e coordena-se com o balanceador de carga interno para encaminhar todo o tráfego do cluster para o nó esperado. Google Cloud
Pode controlar este comportamento através dos seguintes campos nos metadados
da instância ou no ficheiro instance_configs.cfg
:
enable-wsfc
: quando definido comotrue
, o agente ignora todas as informações de encaminhamento de IP e começa a responder à porta de verificação de estado. A predefinição éfalse
.wsfc-agent-port
: especifica a porta onde o agente responde às verificações de estado. A predefinição é59998
.wsfc-addrs
: uma lista de endereços IP separados por vírgulas. Esta definição avançada permite-lhe ter IPs de encaminhamento normais e IPs de cluster na mesma instância. Quando define esta opção, o agente apenas ignora a configuração automática para os IPs nesta lista. Por predefinição, este valor não está definido.
O que se segue?
- Para saber como gerir o agente convidado, consulte o artigo Configure o agente convidado