Desplegar Ollama Kubernetes: Guía IA Self-Hosted

2026.03.26
Technology
915 Words
Desplegar Ollama Kubernetes: Guía IA Self-Hosted

Parte 1 de 4. Parte 1 | Parte 2 | Parte 3 | Parte 4

He dejado de contar cuántas veces he escuchado a un CTO preguntar: ¿realmente tenemos que enviar estos datos a OpenAI? Cuando despliegas Ollama en Kubernetes, la respuesta es no. Tienes un stack de IA self-hosted completo que mantiene tus datos on-premise, reduce costos de inferencia y se integra con tus herramientas de plataforma existentes.

Ollama es una herramienta de código abierto que simplifica ejecutar large language models (LLMs) localmente al agrupar gestión de modelos, servicio de inferencia y una API REST en un solo binario. Kubernetes es la plataforma estándar de orquestación de contenedores para automatizar el despliegue, escalado y gestión de aplicaciones containerizadas. La IA self-hosted significa ejecutar inferencia en hardware que controlas (on-premise, nube privada o nodos GPU dedicados), sin depender de APIs de terceros como OpenAI o Anthropic. La inferencia con GPU usa unidades de procesamiento gráfico NVIDIA para acelerar cargas de trabajo de LLMs, ofreciendo respuestas 10-50x más rápidas que solo con CPU.

Soy Administrador Certificado de Kubernetes con experiencia ejecutando este mismo setup de Ollama K8s en clusters que van desde homelab con RTX hasta pools multi-nodo de A100. Al final, tendrás una instancia de Ollama aislada por namespace con programación GPU, almacenamiento persistente y exposición por ingress.

Nota de versión: Estas instrucciones aplican a Ollama 0.5.x y Kubernetes 1.28+. Los manifiestos YAML usan versiones de API estables.

Referencia Rápida

Comando / ValorQué Hace
helm install gpu-operator nvidia/gpu-operator --namespace gpu-operator --create-namespaceInstala NVIDIA GPU Operator para programación de nodos GPU
kubectl label nodes <node> gpu-type=nvidia accelerator=nvidia-gpuEtiqueta nodos GPU para afinidad de pods de Ollama
ollama/ollama:0.5.7Tag de imagen de Ollama recomendado
100Gi PVC en StorageClass fast-ssdAlmacenamiento persistente mínimo para modelos
nvidia.com/gpu: "1"Solicitud de recurso GPU para el contenedor Ollama
OLLAMA_KEEP_ALIVE: "30m"Mantiene modelos cargados en VRAM por 30 minutos
strategy: RecreateEstrategia de Deployment requerida para PVCs ReadWriteOnce
Puerto 11434Endpoint HTTP API por defecto de Ollama

¿Qué es Ollama y Por Qué Desplegarlo en Kubernetes?

Ollama es una herramienta open-source para ejecutar modelos de lenguaje grandes localmente. Agrupa gestión de modelos, servicio de inferencia y una API REST en un solo binario, como Docker para LLMs. Ejecutas ollama pull llama3.2 y segundos después consultas un endpoint local compatible con OpenAI.

Ejecutar Ollama en una sola VM funciona para desarrollo. En producción necesitas programación, aislamiento de recursos y failover. Cuando despliegas Ollama en Kubernetes, obtienes programación de cargas GPU, resource quotas que evitan que descargas de modelos consuman todo el cluster, e ingress sin load balancers adicionales. El resultado es una plataforma de IA self-hosted que se comporta como cualquier otro microservicio.

Para equipos ya en Kubernetes, un despliegue Ollama K8s elimina la necesidad de VMs separadas para inferencia de IA. Reutilizas monitoreo, logging y seguridad existentes mientras mantienes datos sensibles dentro de tu red.

Prerrequisitos y Requisitos del Cluster

Antes de desplegar Ollama en Kubernetes, verifica tu ambiente:

RequisitoMínimoRecomendadoComando de Verificación
Kubernetesv1.28v1.30+kubectl version --short
kubectlv1.28v1.30+kubectl version --client
GPU NVIDIA1x RTX 3090 (24 GB)1x A100 (40/80 GB)nvidia-smi en el nodo
SO del NodoUbuntu 22.04 LTSUbuntu 24.04 LTSlsb_release -a
Helmv3.12+v3.14+helm version
Runtime de contenedorescontainerd 1.7+containerd 1.7+kubectl get nodes -o wide

Crítico: NVIDIA Device Plugin

Ollama requiere GPUs NVIDIA para rendimiento aceptable. Los nodos deben tener:

  1. Drivers NVIDIA instalados en el host
  2. NVIDIA Device Plugin for Kubernetes como DaemonSet
  3. nvidia-container-toolkit configurado para tu runtime

La ruta más fácil es el NVIDIA GPU Operator, que automatiza los tres:

Terminal window
helm install gpu-operator nvidia/gpu-operator \
--namespace gpu-operator \
--create-namespace \
--wait

Verifica que los nodos GPU sean programables:

Terminal window
kubectl get nodes -o json | jq '.items[].status.capacity | select(."nvidia.com/gpu")'
# Salida esperada: nvidia.com/gpu: "1" (o más)

Advertencia: Sin el device plugin, Kubernetes programa tu pod en un nodo GPU pero el contenedor no verá la GPU. Ollama cae a inferencia por CPU, 10-50x más lenta.

FAQ

¿Qué es Ollama en Kubernetes?

Ollama en Kubernetes es un patrón de despliegue donde el servidor de inferencia Ollama se ejecuta como workload containerizado dentro de un cluster Kubernetes. Esto proporciona programación GPU, almacenamiento persistente vía PVCs, exposición por ingress e integración con monitoreo y seguridad existentes.

¿Necesito una GPU para ejecutar Ollama en Kubernetes?

Técnicamente no, pero prácticamente sí para cualquier carga real. Un modelo de 7B parámetros corre 10-20x más lento en CPU. Sin GPU, los tiempos de inferencia pasan de milisegundos a segundos por token. Para desarrollo con modelos 1-3B, solo CPU funciona. Pero no esperes tiempos de respuesta de producción.

¿Cuál es la diferencia entre ejecutar Ollama en una VM versus Kubernetes?

Una VM es más simple al inicio pero más difícil de operar a escala. Kubernetes te da programación GPU automatizada, resource quotas, health checks con liveness y readiness probes, e integración directa con ingress. La desventaja es la complejidad operacional. Kubernetes requiere habilidades de ingeniería de plataforma para depurar problemas de programación GPU o PVC. Cubro esto en la Parte 4.

¿Qué versión del NVIDIA GPU Operator necesito?

Usa la última estable del repositorio Helm de NVIDIA. A marzo 2026, la versión 24.9+ funciona con Kubernetes 1.28+. El operator despliega automáticamente el device plugin, container toolkit y driver installer como DaemonSet.

¿Cuánto almacenamiento necesito para modelos de Ollama?

Empieza con 100 GB en StorageClass respaldado por SSD. Un modelo Llama 3.1 70B cuantizado ocupa ~39 GB. Cargar modelos desde disco magnético es extremadamente lento. Usa siempre SSD o NVMe para PVCs de Ollama. La Parte 4 tiene tablas detalladas de tamaños.

Siguientes Pasos

Tu cluster tiene el GPU Operator instalado y nodos etiquetados para GPUs. En la Parte 2 cubro el diseño completo de arquitectura: aislamiento de namespace, resource quotas y configuración de afinidad GPU.

Partes de esta serie: Parte 2 →

# Ollama # Kubernetes # ia-self-hosted # inferencia-gpu # nvidia # DevOps # Llm