GKE Agent Sandbox ti aiuta a gestire i carichi di lavoro isolati, stateful e a replica singola su GKE. È ottimizzato per casi d'uso come i runtime degli agenti AI, in cui il codice non attendibile generato da LLM deve essere eseguito in un ambiente sicuro e performante.
L'add-on GKE Agent Sandbox si basa sul progetto del controller Agent Sandbox open source e segue i relativi cicli di rilascio. In qualità di add-on GKE gestito, Google gestisce l'intero ciclo di vita del controller, inclusi gli upgrade automatici e le patch di sicurezza.
Questo documento fornisce una panoramica concettuale di GKE Agent Sandbox.
Perché utilizzare GKE Agent Sandbox
GKE Agent Sandbox è progettato per i carichi di lavoro agentic che richiedono scalabilità, estensibilità e sicurezza di alto livello. Questi sono alcuni dei principali vantaggi:
- Isolamento a livello di kernel: fornisce un isolamento a livello di kernel efficace per il codice non attendibile generato da LLM utilizzando tecnologie come gVisor.
- Provisioning in meno di un secondo: offre un meccanismo predefinito per fornire sandbox in modo significativamente più rapido rispetto a quanto consentito dalla pianificazione dei pod Kubernetes standard (in genere <1 s).
- Estensibilità cloud-native: sfrutta la potenza del paradigma Kubernetes e dell'infrastruttura gestita di GKE.
Fornendo un'API dichiarativa e standardizzata, GKE Agent Sandbox offre un'esperienza a container singolo che fornisce caratteristiche di isolamento e persistenza simili a quelle di una macchina virtuale (VM), basata interamente su primitive Kubernetes.
Casi d'uso comuni per Agent Sandbox
Utilizza GKE Agent Sandbox per i carichi di lavoro che richiedono isolamento, persistenza e un'identità stabile. Ecco alcuni esempi di casi d'uso:
- Runtime degli agenti AI: esegui in sicurezza codice non attendibile in un ambiente isolato da runtime incentrati sulla sicurezza come gVisor.
- Ambienti di sviluppo: fornisci agli sviluppatori ambienti di programmazione basati sul cloud persistenti e isolati.
- Blocchi note e strumenti di ricerca: ospita sessioni a container singolo per strumenti interattivi come i blocchi note Jupyter.
- Servizi stateful a pod singolo: esegui applicazioni che richiedono un'
identità e uno spazio di archiviazione stabili senza la complessità di un
StatefulSet. - Gestione programmatica dell'ambiente: utilizza gli SDK della libreria client forniti, come l'SDK Python di Agent Sandbox, per richiedere e gestire le sandbox direttamente dalla logica dell'applicazione senza gestire YAML Kubernetes.
Come funziona GKE Agent Sandbox
GKE Agent Sandbox utilizza un controller personalizzato e diverse definizioni di risorse personalizzate (CRD) di Kubernetes per gestire il ciclo di vita degli ambienti in sandbox.
Architettura di base
- CRD Sandbox: la risorsa principale che rappresenta un singolo pod stateful. Gestisce nomi host stabili, identità di rete e spazio di archiviazione permanente.
- Router Sandbox: un componente che fornisce un endpoint stabile e incanala il traffico ai pod Sandbox appropriati, astraendo la complessità di rete sottostante.
- Integrazione con gli snapshot dei pod: GKE Agent Sandbox si integra con la funzionalità degli snapshot dei pod GKE per consentire la sospensione e la ripresa dei carichi di lavoro salvando e ripristinando lo stato completo di un container.
Modello di rivendicazione
Il modello di rivendicazione è una funzionalità chiave che separa la richiesta di un ambiente da parte dell'utente dai dettagli di implementazione specifici, ad esempio dove e come viene eseguito il provisioning del carico di lavoro. A differenza di un StatefulSet Kubernetes standard, il modello di attestazione ti consente di richiedere una sandbox senza dover gestire direttamente le configurazioni di pod o spazio di archiviazione sottostanti.
Il modello di rivendicazione viene gestito utilizzando le
SandboxClaim e le
SandboxTemplate CRD e funziona nel seguente modo:
- Gli utenti o le applicazioni richiedono una sandbox creando un
SandboxClaimche fa riferimento a unSandboxTemplate. - Il controller gestisce il mapping della rivendicazione a un'istanza Sandbox effettiva, offrendo una gestione flessibile del backend. Ciò consente al sistema di riutilizzare le sandbox esistenti o di allocare da un pool.
Pool di pre-avvio
La funzionalità Pool di pre-avvio è progettata per ridurre al minimo la latenza di avvio, che è fondamentale per gli scenari di agenti AI interattivi. Questa funzionalità consente ad Agent Sandbox di fornire ambienti di esecuzione in meno di un secondo, in modo significativamente più rapido rispetto alla pianificazione dei pod tipica. La funzionalità viene gestita utilizzando la
SandboxWarmPool
CRD e funziona nel seguente modo:
- Un
SandboxWarmPoolgestisce un insieme di istanze di pod pre-avviate in uno stato pronto. - Quando viene effettuato un
SandboxClaim, il controller assegna immediatamente un pod dal pool anziché attendere che un nuovo pod estragga le immagini e inizi da zero. - Se combinati con gli snapshot dei pod, i pool di pre-avvio forniscono funzionalità rapide e "istantanee" ripristinando i pod da uno stato preconfigurato.
Isolamento di rete
GKE Agent Sandbox implementa una postura di sicurezza di rete Nega per impostazione predefinita per tutti gli ambienti in sandbox. Ciò garantisce che il codice non attendibile eseguito all'interno di una sandbox non possa accedere per impostazione predefinita alle reti interne non autorizzate o al piano di controllo GKE. Puoi definire restrizioni di rete specifiche e regole in uscita o in entrata consentite all'interno di SandboxTemplate per fornire una sicurezza granulare per i carichi di lavoro agentici.
Accesso programmatico con gli SDK
I tecnici AI possono utilizzare le risorse GKE Agent Sandbox in modo programmatico utilizzando le librerie client fornite. Ad esempio, l'SDK
Python fornisce un'interfaccia di alto livello che astrae le configurazioni sottostanti
SandboxClaim e SandboxTemplate. In questo modo puoi creare e interagire con ambienti isolati direttamente dai framework di agenti basati su Python come LangChain o l'SDK agentic di Vertex AI.
Limitazioni e requisiti
GKE Agent Sandbox presenta le seguenti limitazioni e requisiti:
- Versione del cluster: richiede GKE versione 1.35.2-gke.1269000 o successive per il supporto completo delle funzionalità (inclusi gli snapshot).
- Requisiti dell'infrastruttura: ottimizzato per configurazioni di nodi specifiche (ad esempio i tipi di macchine N2) e richiede l'installazione e la configurazione del controller Agent Sandbox sul cluster.
- Runtime di isolamento: sebbene supporti più runtime, è principalmente destinato all'uso con runtime con sicurezza avanzata come gVisor.
- Disponibilità delle funzionalità sottostanti: alcune funzionalità sottostanti, come gli snapshot dei pod GKE, potrebbero essere in anteprima o avere una disponibilità regionale specifica.
Passaggi successivi
- Scopri come attivare Agent Sandbox su GKE.
- Scopri di più sull'isolamento dell'esecuzione del codice AI con Agent Sandbox.
- Per scoprire come utilizzare gli snapshot dei pod con Agent Sandbox, consulta Salvare e ripristinare gli ambienti Agent Sandbox con gli snapshot dei pod.
- Per l'implementazione open source sottostante, consulta il progetto GitHub di Agent Sandbox.
- Per esempi di runtime e configurazioni YAML per scenari come l'esecuzione di codice o l'utilizzo del computer, consulta gli esempi di Agent Sandbox.
- Per interagire con le sandbox in modo programmatico, consulta il file README dell'SDK Python di Agent Sandbox su GitHub.