Ir al contenido

Kubernetes

Para qué sirve. Tercer camino: chart Helm para un clúster real. PVC para data/, Ingress, probes, secrets como objetos Kubernetes. Los YAML crudos arriba de deploy/k8s/ son legado — en producción usa Helm.

  • Varias réplicas o clúster compartido (aun así nunca dos escritores en un SQLite).
  • Ingress + StorageClass.
  • Secretos desde un Secret de Kubernetes o External Secrets Operator.
  1. K8s 1.28+, Helm 3.12+, imagen, Ingress, StorageClass.
  2. Namespace eyas. Secret de master key (eyas-master-key) antes de helm install.
  3. Pull-secret si el registro es privado. helm install.
  4. Probes /api/v1/health. Abre el host de Ingress.

Guarda la master key en un gestor de contraseñas — perderla pierde el vault de secretos.

Directorio de datos en el volumen. Con el montaje por defecto del chart (/app/data) no hay nada que definir: la base de datos y el vault de memoria están en el volumen persistente. Si apuntas EYAS_DATA_DIR a otro montaje, el vault se mueve allí también — siempre es <data dir>/vault — junto con la base de datos. Ver Configuración — Directorio de datos y vault.

Sandbox de archivos del kernel. La imagen de EYAS no incluye bubblewrap (es LGPL; instalarlo es decisión del operador). Para el sandbox de archivos del kernel de los proveedores CLI, el contenedor necesita bubblewrap (bwrap), socat para Claude Code y user namespaces sin privilegios — que muchos clústeres y runtimes de contenedores desactivan. Sin ellos, EYAS sigue rechazando cada petición que ve y muestra el sandbox como No disponible; con security.cliSandbox: required, los turnos de CLI con herramientas se rechazan. eyas doctor lo informa en su línea CLI sandbox. Ver Proveedores — Sandbox de archivos del kernel.

Margen de memoria para una importación grande. El límite por defecto del chart es 1Gi, que deja sitio para una importación de data-port: un archivo contenedor se mantiene en memoria mientras se renderiza cada unidad de su interior, y cuánto cuesta eso depende del archivo — unas tres veces su tamaño para una transcripción de una línea por turno, siete o más para una exportación de chat analizada entera. Una exportación de chat de 90 MB llega cerca de 900 MiB residentes: cabe en 1Gi, pero por poco; el YAML de arranque heredado en la raíz de deploy/k8s/ pone 512Mi y no la aguanta. El pico lo marca tu archivo individual más grande, no el tamaño del escaneo, así que sube el límite antes de importar algo mayor. Véase Importación y exportación de datos.