Acerca de GKE Agent Sandbox

La zona de pruebas de agentes de Google Kubernetes Engine (GKE) te ayuda a administrar cargas de trabajo aisladas, con estado y de una sola réplica en GKE. Está optimizada para casos de uso como los entornos de ejecución de agentes de IA, en los que se debe ejecutar código no confiable generado por LLM en un entorno seguro y con buen rendimiento.

El complemento de la zona de pruebas de agentes de GKE se basa en el proyecto de controlador de zona de pruebas de agentes de código abierto y sigue sus ciclos de lanzamiento . Como complemento administrado de GKE, Google administra el ciclo de vida completo del controlador, incluidas las actualizaciones automáticas y los parches de seguridad.

En este documento, se proporciona una descripción general conceptual de la zona de pruebas de agentes de GKE.

Por qué usar la zona de pruebas de agentes de GKE

La zona de pruebas de agentes de GKE está diseñada para cargas de trabajo de agentes que requieren una escala, una extensibilidad y una seguridad de alto nivel. Los beneficios principales son:

  • Aislamiento a nivel del kernel: Proporciona un aislamiento sólido a nivel del kernel para el código no confiable generado por LLM con tecnologías como gVisor.
  • Aprovisionamiento en menos de un segundo: Ofrece un mecanismo listo para usar para proporcionar zonas de pruebas mucho más rápido de lo que permite la programación estándar de Pods de Kubernetes (por lo general, <1 s).
  • Extensibilidad nativa de la nube: Aprovecha la potencia del paradigma de Kubernetes y la infraestructura administrada de GKE.

Al proporcionar una API declarativa y estandarizada, la zona de pruebas de agentes de GKE ofrece una experiencia de un solo contenedor que proporciona características de aislamiento y persistencia similares a una máquina virtual (VM), compilada por completo en primitivas de Kubernetes.

Casos de uso comunes para la zona de pruebas de agentes

Usa la zona de pruebas de agentes de GKE para cargas de trabajo que requieren aislamiento, persistencia y una identidad estable. Como ejemplo, se incluyen los siguientes casos prácticos:

  • Entornos de ejecución de agentes de IA: Ejecuta de forma segura código no confiable en un entorno aislado por entornos de ejecución enfocados en la seguridad, como gVisor.
  • Entornos de desarrollo: Proporciona a los desarrolladores entornos de codificación persistentes y aislados basados en la nube.
  • Notebooks y herramientas de investigación: Aloja sesiones de un solo contenedor para herramientas interactivas como notebooks de Jupyter.
  • Servicios con estado de un solo Pod: Ejecuta aplicaciones que necesitan una identidad y un almacenamiento estables sin la complejidad de un StatefulSet.
  • Administración programática del entorno: Usa los SDK de biblioteca cliente proporcionados, como el SDK de Python de la zona de pruebas de agentes, para solicitar y administrar zonas de pruebas directamente desde la lógica de tu aplicación sin administrar YAML de Kubernetes.

Cómo funciona la zona de pruebas de agentes de GKE

La zona de pruebas de agentes de GKE usa un controlador personalizado y varias definiciones de recursos personalizados (CRD) de Kubernetes para administrar el ciclo de vida de los entornos de zona de pruebas.

Arquitectura principal

  • CRD de zona de pruebas: Es el recurso principal que representa un solo Pod con estado. Administra nombres de host estables, identidad de red y almacenamiento persistente.
  • Router de zona de pruebas: Es un componente que proporciona un extremo estable y canaliza el tráfico a los Pods de zona de pruebas adecuados, lo que abstrae la complejidad de las herramientas de redes subyacentes.
  • Integración con instantáneas de Pods: La zona de pruebas de agentes de GKE se integra con la función de instantáneas de Pods de GKE para permitir la pausa y la reanudación de las cargas de trabajo guardando y restableciendo el estado completo de un contenedor.

Modelo de reclamo

El modelo de reclamo es una función clave que separa la solicitud del usuario de un entorno de los detalles de implementación específicos, como dónde y cómo se aprovisiona la carga de trabajo. A diferencia de un StatefulSet estándar de Kubernetes, el modelo de reclamo te permite solicitar una zona de pruebas sin necesidad de administrar directamente las configuraciones subyacentes de Pods o almacenamiento.

El modelo de reclamo se administra con las SandboxClaim y SandboxTemplate CRD, y funciona de la siguiente manera:

  1. Los usuarios o las aplicaciones solicitan una zona de pruebas creando un SandboxClaim que hace referencia a un SandboxTemplate.
  2. El controlador controla la asignación del reclamo a una instancia de zona de pruebas real, lo que ofrece una administración flexible del backend. Esto permite que el sistema reutilice las zonas de pruebas existentes o asigne desde un grupo.

Grupos activos

La función Grupo activo está diseñada para minimizar la latencia de inicio, que es fundamental para las situaciones interactivas de agentes de IA. Esta función permite que la zona de pruebas de agentes proporcione entornos de ejecución en menos de un segundo, mucho más rápido que la programación típica de Pods. La función se administra con la SandboxWarmPool CRD y funciona de la siguiente manera:

  1. Un SandboxWarmPool mantiene un conjunto de instancias de Pods precalentadas en un estado listo.
  2. Cuando se realiza un SandboxClaim, el controlador asigna instantáneamente un Pod del grupo en lugar de esperar a que un Pod nuevo extraiga imágenes y comience desde cero.
  3. Cuando se combinan con instantáneas de Pods, los grupos activos proporcionan capacidades rápidas de "encendido instantáneo" mediante el restablecimiento de Pods desde un estado preconfigurado.

Aislamiento de red

La zona de pruebas de agentes de GKE implementa una postura de seguridad de red de denegación predeterminada para todos los entornos de zona de pruebas. Esto garantiza que el código no confiable que se ejecuta dentro de una zona de pruebas no pueda acceder a redes internas no autorizadas ni al plano de control de GKE de forma predeterminada. Puedes definir restricciones de red específicas y reglas de entrada o salida permitidas dentro de tu SandboxTemplate para proporcionar seguridad detallada para las cargas de trabajo de agentes.

Acceso programático con SDKs

Los ingenieros de IA pueden consumir recursos de la zona de pruebas de agentes de GKE de forma programática con las bibliotecas cliente proporcionadas. Por ejemplo, el SDK de Python proporciona una interfaz de alto nivel que abstrae las configuraciones subyacentes SandboxClaim y SandboxTemplate. Esto te permite crear entornos aislados e interactuar con ellos directamente desde tus frameworks de agentes basados en Python, como LangChain o el SDK de agentes de Vertex AI.

Limitaciones y requisitos

La zona de pruebas de agentes de GKE tiene las siguientes limitaciones y requisitos:

  • Versión del clúster: Requiere la versión 1.35.2-gke.1269000 de GKE o una posterior para la compatibilidad completa con las funciones (incluidas las instantáneas).
  • Requisitos de infraestructura: Está optimizada para configuraciones de nodos específicas (como los tipos de máquinas N2) y requiere que el controlador de la zona de pruebas de agentes esté instalado y configurado en el clúster.
  • Entornos de ejecución de aislamiento: Si bien admite varios entornos de ejecución, está diseñada principalmente para usarse con entornos de ejecución reforzados con seguridad, como gVisor.
  • Disponibilidad de funciones subyacentes: Es posible que algunas funciones subyacentes, como las instantáneas de Pods de GKE, estén en versión preliminar o tengan disponibilidad regional específica.

¿Qué sigue?