GKE Agent Sandbox

Mit der Google Kubernetes Engine (GKE) Agent Sandbox können Sie isolierte, zustandsorientierte Arbeitslasten mit einem Replikat 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 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 eine Konzeptübersicht über die GKE Agent Sandbox.

Vorteile der GKE Agent Sandbox

Die GKE Agent Sandbox wurde für Agent-Arbeitslasten entwickelt, die ein hohes Maß an Skalierbarkeit, Erweiterbarkeit und Sicherheit erfordern. Zu den wichtigsten Vorteilen gehören:

  • Isolierung auf Kernelebene: Bietet eine starke Isolierung auf Kernelebene für nicht vertrauenswürdigen, von LLMs generierten Code mit Technologien wie gVisor.
  • Bereitstellung in weniger als einer Sekunde: Bietet einen sofort einsatzbereiten Mechanismus, um Sandboxes deutlich schneller bereitzustellen, als es die Standardplanung von Kubernetes-Pods ermöglicht (in der Regel weniger als 1 Sekunde).
  • Cloud-native Erweiterbarkeit: Nutzt die Leistungsfähigkeit des Kubernetes Paradigmas und der verwalteten 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 die GKE Agent Sandbox für Arbeitslasten, die Isolierung, Persistenz und eine stabile Identität erfordern. Beispiel-Anwendungsfälle umfassen Folgendes:

  • KI-Agent-Laufzeiten: Führen Sie nicht vertrauenswürdigen Code sicher in einer Umgebung aus, die durch sicherheitsorientierte Laufzeiten wie gVisor isoliert ist.
  • Entwicklungsumgebungen: Bieten Sie Entwicklern persistente, isolierte cloudbasierte Programmierumgebungen.
  • Notebooks und Recherchetools: Hosten Sie Single-Container-Sitzungen für interaktive Tools wie Jupyter-Notebooks.
  • Zustandsorientierte Single-Pod-Dienste: Führen Sie Anwendungen aus, die eine stabile Identität und einen stabilen Speicher benötigen, ohne die Komplexität eines StatefulSet.
  • Programmatische Umgebungsverwaltung: Verwenden Sie die bereitgestellten Clientbibliotheks-SDKs wie das Agent Sandbox Python SDK, um Sandboxes direkt aus Ihrer Anwendungslogik anzufordern und zu verwalten, ohne Kubernetes-YAML zu verwalten.

Funktionsweise der GKE Agent Sandbox

Die 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, zustandsorientierten Pod darstellt. Sie verwaltet stabile Hostnamen, die Netzwerkidentität und nichtflüchtigen Speicher.
  • Sandbox-Router: Eine Komponente, die einen stabilen Endpunkt bietet und Traffic an die entsprechenden Sandbox-Pods weiterleitet, wodurch die zugrunde liegende Netzwerkkomplexität abstrahiert wird.
  • Integration mit Pod-Snapshots: Die GKE Agent Sandbox ist in die Funktion für GKE Pod-Snapshots integriert, sodass Sie Arbeitslasten anhalten und fortsetzen können, indem Sie den vollständigen Status eines Containers speichern und wiederherstellen.

Anspruchsmodell

Das Anspruchsmodell ist eine wichtige Funktion, die die Anfrage des Nutzers nach einer Umgebung von den spezifischen Implementierungsdetails trennt, z. B. wo und wie die Arbeitslast bereitgestellt wird. Im Gegensatz zu einem Standard-StatefulSet von Kubernetes können Sie mit dem Anspruchsmodell eine Sandbox anfordern, ohne die zugrunde liegenden Pod- oder Speicherkonfigurationen direkt verwalten zu müssen.

Das Anspruchsmodell wird mit den SandboxClaim und SandboxTemplate CRDs verwaltet und funktioniert so:

  1. Nutzer oder Anwendungen fordern eine Sandbox an, indem sie einen SandboxClaim erstellen, der auf ein SandboxTemplate verweist.
  2. Der Controller verarbeitet die Zuordnung des Anspruchs zu einer tatsächlichen Sandbox-Instanz und bietet eine flexible Backend-Verwaltung. So kann das System vorhandene Sandboxes wiederverwenden oder aus einem Pool zuweisen.

Warm Pools

Die Funktion Warm Pool wurde entwickelt, um die Startlatenz zu minimieren, was für interaktive KI-Agent-Szenarien entscheidend ist. Mit dieser Funktion kann die Agent Sandbox Ausführungsumgebungen in weniger als einer Sekunde bereitstellen, was deutlich schneller ist als die typische Pod-Planung. Die Funktion wird mit der SandboxWarmPool CRD verwaltet und funktioniert so:

  1. Ein SandboxWarmPool verwaltet eine Reihe von vorab aufgewärmten Pod-Instanzen in einem bereiten Zustand.
  2. Wenn ein SandboxClaim erstellt wird, weist der Controller sofort einen Pod aus dem Pool zu, anstatt zu warten, bis ein neuer Pod Images abruft und von Grund auf neu startet.
  3. In Kombination mit Pod-Snapshots bieten Warm Pools schnelle „Instant-On“-Funktionen, indem Pods aus einem vorkonfigurierten Zustand wiederhergestellt werden.

Netzwerkisolation

Die GKE Agent Sandbox implementiert eine Standardablehnung für die Netzwerksicherheit 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 zulässige Regeln für 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 mit den bereitgestellten Clientbibliotheken nutzen. Das Python SDK bietet beispielsweise eine High-Level-Schnittstelle, die die zugrunde liegenden SandboxClaim und SandboxTemplate Konfigurationen abstrahiert. So können Sie isolierte Umgebungen direkt aus Ihren Python-basierten Agent-Frameworks wie LangChain oder dem Vertex AI Agentic SDK erstellen und mit ihnen interagieren.

Beschränkungen und Anforderungen

Für die GKE Agent Sandbox gelten die folgenden Beschränkungen und Anforderungen:

  • Clusterversion: Erfordert GKE-Version 1.35.2-gke.1269000 oder höher für die vollständige Unterstützung aller Funktionen (einschließlich Snapshots).
  • Infrastrukturanforderungen: Optimiert für bestimmte Knoteneinstellungen (z. B. N2-Maschinentypen) und erfordert, dass der Agent Sandbox-Controller im Cluster installiert und konfiguriert ist.
  • Isolierungslaufzeiten: Obwohl mehrere Laufzeiten unterstützt werden, ist die Verwendung in erster Linie mit sicherheitshärteten Laufzeiten wie gVisor vorgesehen.
  • Verfügbarkeit zugrunde liegender Funktionen: Einige zugrunde liegende Funktionen wie GKE-Pod-Snapshots sind möglicherweise in der Vorschauphase oder nur in bestimmten Regionen verfügbar.

Nächste Schritte