Mit der Google Kubernetes Engine (GKE) Agent Sandbox können Sie isolierte, zustandsorientierte und Single-Replica-Arbeitslasten in GKE verwalten. Sie ist für Anwendungsfälle wie KI-Agent-Laufzeiten optimiert, bei denen nicht vertrauenswürdiger, von LLMs generierter Code in einer sicheren und leistungsstarken Umgebung ausgeführt werden muss.
Das GKE Agent Sandbox-Add-on basiert auf dem Open-Source-Projekt für den Agent Sandbox-Controller und folgt dessen Releasezyklen. Als verwaltetes GKE-Add-on verwaltet Google den gesamten Lebenszyklus des Controllers, einschließlich automatischer Upgrades und Sicherheitspatches.
Dieses Dokument bietet einen konzeptionellen Überblick über die GKE Agent Sandbox.
Vorteile von GKE Agent Sandbox
GKE Agent Sandbox wurde für agentische Arbeitslasten entwickelt, die ein hohes Maß an Skalierbarkeit, Erweiterbarkeit und Sicherheit erfordern. Zu den wichtigsten Vorteilen gehören:
Isolation auf Kernelebene: Bietet eine starke Isolation auf Kernelebene für nicht vertrauenswürdigen, von LLMs generierten Code. Agent Sandbox funktioniert auch mit dem Open-Source-Projekt Kata Containers. Eine Anleitung zur Verwendung von Open-Source-Kata-Containern mit GKE Agent Sandbox finden Sie unter Kata-Container in GKE aktivieren.
Bereitstellung in weniger als einer Sekunde: Bietet einen sofort einsatzbereiten Mechanismus, um Sandboxes deutlich schneller als mit der standardmäßigen Kubernetes-Pod-Planung bereitzustellen (in der Regel <1 Sekunde).
Cloud-native Erweiterbarkeit: Nutzt die Leistungsfähigkeit des Kubernetes-Paradigmas und die verwaltete Infrastruktur von GKE.
Die GKE Agent Sandbox bietet eine deklarative, standardisierte API und eine Single-Container-Umgebung, die Isolierungs- und Persistenzmerkmale ähnlich einer virtuellen Maschine (VM) bietet und vollständig auf Kubernetes-Primitiven basiert.
Häufige Anwendungsfälle für die Agent Sandbox
Verwenden Sie GKE Agent Sandbox für Arbeitslasten, die Isolation, Persistenz und eine stabile Identität erfordern. Beispiel-Anwendungsfälle umfassen Folgendes:
- KI-Agent-Runtimes: Nicht vertrauenswürdigen Code sicher in einer Umgebung ausführen, die durch sicherheitsorientierte Runtimes wie gVisor isoliert ist.
- Entwicklungsumgebungen: Bieten Entwicklern persistente, isolierte cloudbasierte Programmierumgebungen.
- Notebooks und Recherchetools: Hosten Sie Single-Container-Sitzungen für interaktive Tools wie Jupyter-Notebooks.
- Stateful-Dienste mit einem einzelnen Pod: Führen Sie Anwendungen aus, die eine stabile Identität und Speicherung benötigen, ohne dass ein
StatefulSeterforderlich ist. - Programmatische Umgebungsverwaltung: Mit den bereitgestellten Clientbibliotheks-SDKs, z. B. dem Agent Sandbox Python SDK, können Sie Sandboxes direkt über Ihre Anwendungslogik anfordern und verwalten, ohne Kubernetes-YAML verwalten zu müssen.
Funktionsweise von GKE Agent Sandbox
GKE Agent Sandbox verwendet einen benutzerdefinierten Controller und mehrere benutzerdefinierte Ressourcendefinitionen (Custom Resource Definitions, CRDs) von Kubernetes, um den Lebenszyklus von Sandbox-Umgebungen zu verwalten.
Kernarchitektur
- Sandbox-CRD: Die primäre Ressource, die einen einzelnen, zustandsbehafteten Pod darstellt. Sie verwaltet stabile Hostnamen, Netzwerkidentität und nichtflüchtigen Speicher.
- Sandbox-Router: Eine Komponente, die einen stabilen Endpunkt bereitstellt und Traffic an die entsprechenden Sandbox-Pods weiterleitet, wodurch die zugrunde liegende Netzwerkkomplexität abstrahiert wird.
- Integration mit Pod-Snapshots: GKE Agent Sandbox wird in die Funktion GKE-Pod-Snapshots eingebunden, um das Pausieren und Fortsetzen von Arbeitslasten zu ermöglichen, indem der vollständige Status eines Containers gespeichert und wiederhergestellt wird.
Anspruchsmodell
Das Claim-Modell ist ein wichtiges Feature, das die Anfrage des Nutzers nach einer Umgebung von den spezifischen Implementierungsdetails trennt, z. B. wo und wie der Arbeitslast bereitgestellt wird. Im Gegensatz zu einem Standard-Kubernetes-StatefulSet können Sie mit dem Claim-Modell eine Sandbox anfordern, ohne die zugrunde liegenden Pod- oder Speicherkonfigurationen direkt verwalten zu müssen.
Das Claim-Modell wird mit den CRDs SandboxClaim und SandboxTemplate verwaltet und funktioniert so:
- Nutzer oder Anwendungen fordern eine Sandbox an, indem sie ein
SandboxClaimerstellen, das auf einSandboxTemplateverweist. - Der Controller übernimmt die Zuordnung des Anspruchs zu einer tatsächlichen Sandbox-Instanz und ermöglicht so eine flexible Backend-Verwaltung. So kann das System vorhandene Sandboxes wiederverwenden oder aus einem Pool zuweisen.
Warme Pools
Das Feature Warm Pool wurde entwickelt, um die Startlatenz zu minimieren, was für interaktive KI-Agentenszenarien entscheidend ist. Mit dieser Funktion kann die Agent-Sandbox Ausführungsumgebungen in weniger als einer Sekunde bereitstellen. Das ist deutlich schneller als die übliche Pod-Planung. Die Funktion wird mit der CRD SandboxWarmPool verwaltet und funktioniert so:
- In einem
SandboxWarmPoolwird eine Reihe von vorab aufgewärmten Pod-Instanzen im Status „Bereit“ verwaltet. - Wenn eine
SandboxClaimerfolgt, weist der Controller sofort einen Pod aus dem Pool zu, anstatt darauf zu warten, dass ein neuer Pod Images abruft und von Grund auf neu startet. - In Kombination mit Pod-Snapshots bieten Warm Pools schnelle „Instant-On“-Funktionen, da Pods aus einem vorkonfigurierten Zustand wiederhergestellt werden.
Netzwerkisolation
GKE Agent Sandbox implementiert eine Default Deny-Netzwerksicherheitsstrategie für alle Sandbox-Umgebungen. So wird sichergestellt, dass nicht vertrauenswürdiger Code, der in einer Sandbox ausgeführt wird, standardmäßig nicht auf nicht autorisierte interne Netzwerke oder die GKE-Steuerungsebene zugreifen kann. Sie können in Ihrem SandboxTemplate bestimmte Netzwerkeinschränkungen und Regeln für zulässigen ausgehenden oder eingehenden Traffic definieren, um eine detaillierte Sicherheit für Agent-Arbeitslasten zu gewährleisten.
Programmatischer Zugriff mit SDKs
KI-Entwickler können GKE Agent Sandbox-Ressourcen programmatisch über die bereitgestellten Clientbibliotheken nutzen. Das Python SDK bietet beispielsweise eine übergeordnete Schnittstelle, die die zugrunde liegenden SandboxClaim- und SandboxTemplate-Konfigurationen abstrahiert. So können Sie isolierte Umgebungen direkt über Ihre Python-basierten Agent-Frameworks wie LangChain oder das Vertex AI Agentic SDK erstellen und mit ihnen interagieren.
Beschränkungen und Anforderungen
Für GKE Agent Sandbox gelten die folgenden Einschränkungen und Anforderungen:
- Clusterversion: Für die vollständige Unterstützung von Funktionen (einschließlich Snapshots) ist GKE-Version 1.35.2-gke.1269000 oder höher erforderlich.
- Infrastrukturanforderungen: Für bestimmte Knotenkonfigurationen (z. B. N2-Maschinentypen) optimiert und erfordert, dass der Agent Sandbox-Controller im Cluster installiert und konfiguriert ist.
- Isolationslaufzeiten: Obwohl mehrere Laufzeiten unterstützt werden, ist die Funktion in erster Linie für die Verwendung mit sicherheitsoptimierten Laufzeiten wie gVisor vorgesehen.
- Verfügbarkeit zugrunde liegender Funktionen: Einige zugrunde liegende Funktionen wie GKE-Pod-Snapshots sind möglicherweise als Vorschau verfügbar oder haben eine bestimmte regionale Verfügbarkeit.
Nächste Schritte
- Informationen zum Aktivieren von Agent Sandbox in GKE
- Weitere Informationen zum Isolieren der KI-Code-Ausführung mit der Agent Sandbox
- Informationen zur Verwendung von Pod-Snapshots mit Agent Sandbox finden Sie unter Agent Sandbox-Umgebungen mit Pod-Snapshots speichern und wiederherstellen.
- Open-Source-Kata-Container mit Agent Sandbox verwenden Kata Containers ist kein Google Cloud -Produkt. Wenn Sie diese Software installieren und verwenden, sind Sie für die Verwaltung und Fehlerbehebung verantwortlich. Der Support und die SLAs von Google gelten nicht für Kata Containers.
- Die zugrunde liegende Open-Source-Implementierung finden Sie im GitHub-Projekt „Agent Sandbox“.
- Beispiele für Runtimes und YAML-Konfigurationen für Szenarien wie die Codeausführung oder die Computernutzung finden Sie unter Agent Sandbox-Beispiele.
- Informationen zur programmatischen Interaktion mit Sandboxes finden Sie in der README-Datei des Agent Sandbox Python SDK auf GitHub.