關於 GKE Agent Sandbox

Google Kubernetes Engine (GKE) Agent Sandbox 可協助您在 GKE 上管理獨立、具狀態和單一副本的工作負載。這項技術經過最佳化,適用於 AI 代理執行階段等用途,可在安全且高效的環境中執行不受信任的 LLM 生成程式碼。

GKE Agent Sandbox 外掛程式是以開放原始碼的 Agent Sandbox 控制器專案為基礎,並遵循該專案的發布週期。做為代管 GKE 外掛程式,Google 會管理控制器的完整生命週期,包括自動升級和安全性修補程式。

本文提供 GKE Agent Sandbox 的概念總覽。

使用 GKE Agent Sandbox 的原因

GKE Agent Sandbox 專為需要高層級擴充性、延展性和安全性的代理工作負載而建構。主要優點如下:

  • 核心層級隔離:使用 gVisor 等技術,為不受信任的 LLM 生成程式碼提供強大的核心層級隔離機制。
  • 秒級佈建:提供現成機制,可大幅加快沙箱佈建速度,比標準 Kubernetes Pod 排程允許的速度快得多 (通常 <1 秒)。
  • 雲端原生擴充性:充分運用 Kubernetes 範例和 GKE 的代管基礎架構。

GKE Agent Sandbox 提供宣告式標準化 API,可提供單一容器體驗,並完全以 Kubernetes 基本元素為基礎,提供類似虛擬機器的隔離和持續性特徵。

Agent Sandbox 的常見用途

對於需要隔離、持續性和穩定身分的工作負載,請使用 GKE Agent Sandbox。使用案例範例包括:

  • AI 代理執行階段:在安全執行階段 (例如 gVisor) 隔離的環境中,安全地執行不受信任的程式碼。
  • 開發環境:為開發人員提供持續性、獨立的雲端程式碼編寫環境。
  • 筆記本和研究工具:為 Jupyter Notebooks 等互動式工具代管單一容器工作階段。
  • 有狀態的單一 Pod 服務:執行需要穩定身分和儲存空間的應用程式,不必使用複雜的 StatefulSet
  • 以程式輔助管理環境:使用提供的用戶端程式庫 SDK (例如 Agent Sandbox Python SDK),直接從應用程式邏輯要求及管理沙箱,不必管理 Kubernetes YAML。

GKE Agent Sandbox 的運作方式

GKE Agent Sandbox 會使用自訂控制器和多個 Kubernetes 自訂資源定義 (CRD),管理沙箱環境的生命週期。

核心架構

  • 沙箱 CRD:主要資源,代表單一有狀態的 Pod。可管理穩定主機名稱、網路身分和永久儲存空間。
  • 沙箱路由器:這個元件提供穩定的端點,並將流量導向適當的沙箱 Pod,抽象化底層網路的複雜性。
  • 與 Pod 快照整合:GKE Agent Sandbox 與 GKE Pod 快照功能整合,可儲存及還原容器的完整狀態,藉此暫停及繼續工作負載。

聲明模型

聲明模型是一項重要功能,可將使用者對環境的要求與具體實作細節分開,例如工作負載的佈建位置和方式。與標準 Kubernetes StatefulSet 不同,您可以使用 Claim Model 要求沙箱,不必直接管理基礎 Pod 或儲存空間設定。

系統會使用 SandboxClaimSandboxTemplate CRD 管理 Claim 模型,運作方式如下:

  1. 使用者或應用程式會建立參照SandboxTemplateSandboxClaim,藉此要求使用沙箱。
  2. 控制器會處理聲明到實際 Sandbox 執行個體的對應,提供彈性的後端管理。這樣一來,系統就能重複使用現有沙箱,或從集區分配沙箱。

溫水游泳池

暖機集區功能旨在縮短啟動延遲時間,這對互動式 AI 代理程式情境至關重要。這項功能可讓 Agent Sandbox 在不到一秒內提供執行環境,比一般的 Pod 排程快得多。這項功能是透過 SandboxWarmPool CRD 管理,運作方式如下:

  1. SandboxWarmPool 會維護一組處於就緒狀態的預先暖機 Pod 執行個體。
  2. 建立 SandboxClaim 時,控制器會立即從集區指派 Pod,而不是等待新 Pod 提取映像檔並從頭啟動。
  3. 搭配 Pod 快照使用時,暖池可從預先設定的狀態還原 Pod,提供快速的「即時啟動」功能。

網路隔離

GKE Agent Sandbox 會為所有沙箱環境實作「預設拒絕」網路安全防護機制。這麼做可確保在沙箱中執行的不受信任程式碼,預設無法存取未經授權的內部網路或 GKE 控制層。您可以在 SandboxTemplate 中定義特定網路限制和允許的輸出或輸入規則,為代理工作負載提供精細的安全防護。

透過 SDK 進行程式輔助存取

AI 工程師可以使用提供的用戶端程式庫,以程式輔助方式使用 GKE Agent Sandbox 資源。舉例來說,Python SDK 提供高階介面,可抽象化基礎 SandboxClaimSandboxTemplate 設定。這項功能可讓您直接透過 LangChain 或 Vertex AI Agentic SDK 等以 Python 為基礎的代理程式架構,建立及操作獨立環境。

限制與需求

GKE Agent Sandbox 具有下列限制和規定:

  • 叢集版本:如要完整支援所有功能 (包括快照),必須使用 GKE 1.35.2-gke.1269000 以上版本。
  • 基礎架構需求:針對特定節點設定 (例如 N2 機型) 進行最佳化,且需要在叢集上安裝及設定 Agent Sandbox 控制器。
  • 隔離執行階段:雖然支援多個執行階段,但主要用途是搭配 gVisor 等安全強化型執行階段使用。
  • 基礎功能適用情形:部分基礎功能 (例如 GKE Pod 快照) 可能處於預先發布階段,或僅適用於特定區域。

後續步驟