O Agent Substrate executa cargas de trabalho de agentes com eficiência em clusters do GKE, suspendendo agentes inativos e restaurando-os quando precisam agir novamente. O Agent Substrate é um software de código aberto que pode ser instalado em um cluster GKE Standard.
Este documento ajuda você a preparar seu projeto do Google Cloud e o cluster do GKE para o Agent Substrate, explica como executar o instalador e descreve os recursos que a instalação cria.
Preços
O Agent Substrate é oferecido sem custo financeiro extra no GKE. Os preços do GKE são aplicados aos recursos que você cria.
Limitações
O Agent Substrate tem as seguintes limitações de instalação:
- Cloud Shell: não é possível instalar o Agent Substrate no Cloud Shell porque ele oferece 5 GB de armazenamento em disco permanente, o que é insuficiente para a instalação. Você precisa executar o instalador na sua máquina local.
- Modo de cluster: é possível instalar o Agent Substrate apenas em clusters do GKE Standard. Os clusters do Autopilot não são compatíveis.
- Clusters atuais e APIs Beta: se você ativar as APIs Beta necessárias
(
podcertificaterequestseclustertrustbundles) em um cluster atual que executa a versão 1.36, substitua os nós atuais antes de instalar o Agent Substrate. Os nós criados antes da atualização não têm a projeção de certificado do pod ativada (MountVolume.SetUp failed: unimplemented). Em clusters que executam a versão 1.37 ou mais recente, não é necessário substituir os nós atuais. - Tipos de máquina: não é possível usar séries de máquinas que executam arquiteturas de CPU mistas (como tipos de máquina E2).
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
- Instale os seguintes componentes na CLI gcloud:
kubectlgke-gcloud-auth-plugin
- Verifique se as seguintes ferramentas estão instaladas na sua máquina local:
Como o instalador age em seu nome para ativar APIs e provisionar recursos, configure o Application Default Credentials (ADC) executando o comando abaixo:
gcloud auth application-default loginPara mais informações sobre a autenticação com o ADC, consulte Configurar o Application Default Credentials.
Funções exigidas
Para receber as permissões necessárias para instalar o Agent Substrate, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador do Service Usage (
roles/serviceusage.serviceUsageAdmin) - Administrador do Kubernetes Engine (
roles/container.admin) - Administrador do Storage (
roles/storage.admin) - Administrador de projetos do IAM (
roles/resourcemanager.projectIamAdmin) - Editor de monitoramento (
roles/monitoring.editor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Requisitos de cluster
Se você permitir que o instalador crie um cluster, ele vai configurar automaticamente um cluster que atenda a todos os requisitos do Agent Substrate.
Se você preferir instalar o Agent Substrate em um cluster existente, ele precisará atender aos seguintes requisitos:
- Executado no GKE Standard (o Agent Substrate é compatível apenas com clusters Standard).
- Executa o GKE versão 1.36 (com flags Beta ativadas) ou versão 1.37 ou posterior.
- Usa
c3-standard-4ou tipos de máquinas maiores para nós. As APIs Kubernetes
PodCertificateRequesteClusterTrustBundleestão ativadas (certificates.k8s.io/v1beta1/podcertificaterequestsecertificates.k8s.io/v1beta1/clustertrustbundles). Para ativar essas APIs em um cluster atual, execute o seguinte comando:gcloud container clusters update CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --enable-kubernetes-unstable-apis=certificates.k8s.io/v1beta1/podcertificaterequests,certificates.k8s.io/v1beta1/clustertrustbundles- Versão 1.36: depois de ativar as APIs, é necessário substituir os nós atuais, por exemplo, fazendo upgrade do pool de nós ou recriando os nós dele. A projeção de certificado do pod não está ativada em nós que existiam antes da atualização (
MountVolume.SetUp failed: unimplemented). - Versão 1.37 ou mais recente: a projeção de certificado do pod já está ativada nos nós atuais. Portanto, não é necessário substituir os nós depois de ativar as APIs.
- Versão 1.36: depois de ativar as APIs, é necessário substituir os nós atuais, por exemplo, fazendo upgrade do pool de nós ou recriando os nós dele. A projeção de certificado do pod não está ativada em nós que existiam antes da atualização (
Instalar o Agent Substrate
Para instalar o Agent Substrate, execute o comando a seguir no terminal local:
curl -sSL https://raw.githubusercontent.com/ai-on-gke/substrate-gke/main/install.sh | bash
O instalador interativo solicita as configurações de projeto, cluster e armazenamento. Ele sugere padrões recomendados sempre que possível, que você pode aceitar ou personalizar:
- ID do projeto (obrigatório): especifique o projeto Google Cloud em que os recursos serão provisionados. Se você configurou um projeto padrão para a CLI gcloud, o instalador usa esse ID do projeto.
- Cluster (obrigatório): escolha se quer que o instalador crie um novo cluster do GKE com padrões recomendados ou instale o Agent Substrate em um cluster atual. Se você optar por instalar em um cluster atual, verifique se ele atende aos requisitos na seção Requisitos do cluster.
- Bucket de snapshot (opcional): especifique um nome de bucket personalizado do Cloud Storage ou deixe em branco para que o instalador crie um bucket padrão chamado
ate-snapshots-<project>-<zone>.
Quando for solicitado a selecionar uma origem de imagem do contêiner, escolha entre as seguintes opções:
- Imagens pré-criadas: extrai imagens publicadas de um registro de contêiner. Como nada é criado ou enviado, seu projeto Google Cloud não precisa de um registro de contêiner próprio.
- Build from source: cria as imagens do repositório Agent Substrate upstream (ou uma ramificação personalizada) e as envia para o registro do Artifact Registry do projeto.
O que o instalador faz
O instalador executa os seguintes programas em seu nome:
setup-gcp: cria ou verifica os recursos Google Cloud necessários, ativa APIs, cria o cluster do GKE (se você não escolheu usar um cluster atual) e o bucket do Cloud Storage e configura políticas do IAM.ate-setup: implanta as imagens de contêiner e os controladores do Agent Substrate pré-criados no cluster do GKE.
Primeiro, o instalador faz as seguintes mudanças no projeto Google Cloud :
- Ativa as APIs Google Cloud necessárias para o Agent Substrate.
- Cria um cluster do GKE Standard (se não estiver usando um
cluster atual) com as seguintes configurações:
- Federação de Identidade da Carga de Trabalho para GKE: permite que o Agent Substrate acesse o Cloud Storage sem armazenar chaves nos nós.
- GKE Dataplane V2: processa a rede necessária para rotear solicitações recebidas aos seus agentes.
- APIs de certificado (
PodCertificateRequesteClusterTrustBundle): permite que essas APIs Beta do Kubernetes emitam certificados para comunicação TLS entre componentes do Agent Substrate. - OpenTelemetry gerenciado: coleta métricas e traces do seu cluster.
- Cria o bucket do Cloud Storage em que o Agent Substrate grava seus snapshots.
- Concede ao Agent Substrate acesso ao Cloud Storage para armazenar snapshots. Se você escolher criar da origem, também conceda acesso ao Artifact Registry para imagens de contêiner.
- Cria painéis do Cloud Monitoring que mostram a latência de roteamento, o tamanho do snapshot e o tráfego gRPC do Agent Substrate.
Em seguida, o instalador faz as seguintes mudanças no cluster:
- Adiciona o grupo de APIs e recursos do Agent Substrate ao seu cluster. Esses são recursos personalizados do Kubernetes, como
ActorTemplate(que define as imagens e os recursos de contêiner usados pelos seus agentes) eWorkerPool(que define quantas caixas de areia inativas são mantidas prontas). - Configura as autoridades certificadoras que emitem os certificados que identificam os componentes do Agent Substrate e seus atores. Os componentes apresentam esses certificados para se autenticarem usando mTLS.
- Implanta os componentes do Agent Substrate no cluster, junto com um banco de dados PostgreSQL que rastreia o estado dos atores e workers. O instalador aguarda até que o banco de dados e todos os pods do plano de controle estejam prontos.
O Agent Substrate implanta os componentes como cargas de trabalho comuns
nos namespaces ate-system e podcertificate-controller-system. A
instalação não modifica o plano de controle do GKE.
Os componentes implantados incluem o ambiente de execução baseado em gVisor que o Agent Substrate usa por padrão para isolar cada um dos seus agentes do nó em que ele é executado. O instalador não configura tempos de execução de microVMs. Para usar os tempos de execução de microVMs, é necessário implantá-los manualmente em um pool de nós com a virtualização aninhada ativada. Para mais detalhes, consulte as instruções de tempo de execução da microVM no repositório upstream do Agent Substrate.
Se a instalação falhar em algum momento (por exemplo, devido a um erro de rede transitório ou expiração do token), execute o comando novamente. O instalador preserva os recursos existentes e retoma de onde parou.
Para fazer upgrade do Agent Substrate em um cluster atual, execute o
instalador e selecione Fazer upgrade de um cluster instalado. Para mais detalhes, consulte
Fazer upgrade de um cluster instalado
no README do substrate-gke.
Etapas opcionais
Depois de implantar os componentes principais, o instalador oferece as seguintes etapas opcionais:
- Driver CSI do Filestore: instala o driver CSI do Filestore configurado para o Agent Substrate. Escolha essa opção se os agentes precisarem de armazenamento de arquivos compartilhados em pods, como espaços de trabalho ou repositórios compartilhados. Se o cluster tiver o complemento gerenciado do GKE Filestore ativado, o instalador o desativará antes de fazer o implante do driver.
- Escalonamento automático do pool de nós: ativa o escalonamento automático de cluster do GKE no pool de nós. Você especifica o número mínimo e máximo de nós para o pool. Escolha essa opção se quiser que o GKE adicione nós automaticamente durante picos de demanda e remova nós quando os agentes forem suspensos. Pule essa opção se preferir uma contagem de nós fixa com custos de computação previsíveis.
- Demonstração do contador: implanta uma carga de trabalho de exemplo que demonstra a suspensão e a restauração do agente. Escolha essa opção se quiser testar o cluster após a instalação. Para mais detalhes, consulte Teste a demonstração do contador.
Verifique a instalação
Para verificar se a instalação foi bem-sucedida e se os componentes principais estão em execução,
execute os seguintes comandos e verifique se todos os pods têm o status
Running:
kubectl get pods -n ate-system
kubectl get pods -n podcertificate-controller-system
Rotulagem e versões de nós
O instalador aplica o rótulo ate.dev/substrate-version a todos os nós do cluster. Esse rótulo especifica qual versão do
Agent Substrate está instalada no cluster, e
o Agent Substrate executa workers apenas em nós que têm esse
rótulo de versão.
Para verificar qual versão do Agent Substrate está instalada no seu cluster, execute o seguinte comando:
kubectl get ds -n ate-system -l app=atelet -L ate.dev/substrate-version
Considere os seguintes detalhes de rotulagem de nós:
- Pools de workers: ao criar um
WorkerPool, configure-o para segmentar esta tag de versão. Para exemplos, consulte Fixar pools na versão instalada do substrato no guia da API Substrate. - Novos nós: o instalador rotula nós individuais, e não o pool de nós. Por isso, todos os novos nós adicionados após a instalação, mesmo em um pool de nós criado pelo instalador, começam sem o rótulo de versão. Você precisa rotular seu pool de nós do GKE para que os novos nós recebam automaticamente o rótulo.
Testar a demonstração do contador
Se você escolheu implantar a demonstração do contador quando solicitado pelo instalador, é possível observar os recursos de suspensão e restauração do Agent Substrate. A demonstração executa um pequeno servidor da Web que mantém uma contagem na memória.
Depois de implantar WorkerPool e ActorTemplate da demonstração, o instalador
imprime os comandos necessários para criar um Actor com base no ActorTemplate e
enviar uma solicitação para esse Actor. O
README da demonstração do contador
no repositório upstream do Agent Substrate explica as próximas
etapas a serem seguidas.
Desinstalar o Agent Substrate
Quando a instalação for concluída e encerrada, o instalador vai imprimir comandos de limpeza personalizados para seu ambiente.
Para remover os recursos criados durante a instalação, escolha uma das seguintes opções:
Remover o Agent Substrate de um cluster atual: se você fez a instalação em um cluster atual e quer manter o cluster e as outras cargas de trabalho dele, exclua apenas os componentes do Agent Substrate executando o comando
ate-setup delete ate-systemque o instalador imprime. O instalador pré-preenche esse comando com os valores de projeto, cluster e local configurados durante a instalação.Excluir todos os recursos (incluindo o cluster): para excluir o cluster do GKE, o bucket de snapshots, as vinculações do IAM e os painéis, execute o comando
cleanup-gcpque o instalador imprime. O instalador pré-preenche esse comando com os valores de projeto, cluster, local e bucket configurados durante a instalação. Para mais detalhes, consulte a seção "Tearing down" do README do substrate-gke.
A seguir
- Para saber mais sobre o Agent Substrate, consulte Sobre o Agent Substrate.