Despliega Qdrant: Vector Database para búsquedas semánticas en Kubernetes sobre tu VPS
La inteligencia artificial generativa y las búsquedas vectoriales son tendencia en 2025. Por ello, hoy veremos cómo desplegar en Kubernetes Qdrant, una base de datos de vectores ideal para búsquedas semánticas, creación de sistemas de recomendación, chatbots y asistentes inteligentes. ¡Convierte tu servidor o VPS en un motor de IA listo para escalar!
¿Por qué Qdrant?
- Búsqueda semántica eficiente sobre grandes volúmenes de datos vectorizados (embedding de textos, imágenes, etc.).
- Listo para IA generativa: compatible con modelos de lenguaje y flujos semánticos.
- Diseñado para rendimiento en cloud y despliegues on-premise.
- API REST y gRPC sencilla para integrar con tus propios servicios y microservicios.
Arquitectura y componentes
En este proyecto despliegas Qdrant usando Kubernetes con persistencia de datos a través de volúmenes, preparado para exponer su API y gestionar alta disponibilidad. Así, tus datos sobreviven a reinicios de pods y se escalan con el clúster.
Desglose
- Deployment de Qdrant con almacenamiento persistente.
- Service de tipo NodePort para acceso sencillo a la API desde el exterior (puedes adaptarlo a Ingress si tienes configuración extra).
- PersistentVolumeClaim para almacenar los datos.
Ficheros YAML completos
1. PersistentVolume (ajústalo según tu entorno VPS)
apiVersion: v1
kind: PersistentVolume
metadata:
name: qdrant-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/qdrant-data"
2. PersistentVolumeClaim
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: qdrant-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
3. Qdrant Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: qdrant
spec:
replicas: 1
selector:
matchLabels:
app: qdrant
template:
metadata:
labels:
app: qdrant
spec:
containers:
- name: qdrant
image: qdrant/qdrant:latest
ports:
- containerPort: 6333 # REST API
- containerPort: 6334 # gRPC API
volumeMounts:
- name: qdrant-storage
mountPath: /qdrant/storage
volumes:
- name: qdrant-storage
persistentVolumeClaim:
claimName: qdrant-pvc
4. Service (NodePort para acceso desde fuera del clúster)
apiVersion: v1
kind: Service
metadata:
name: qdrant-service
spec:
type: NodePort
selector:
app: qdrant
ports:
- name: rest
port: 6333
targetPort: 6333
nodePort: 30633
- name: grpc
port: 6334
targetPort: 6334
nodePort: 30634
Desplegando el proyecto
- Crea el directorio de persistencia en tu VPS:
sudo mkdir -p /mnt/qdrant-data && sudo chown 1000:1000 /mnt/qdrant-data
- Aplica los manifiestos en orden con
kubectl apply -f nombre-del-fichero.yaml
- Accede a Qdrant en http://IP_DE_TU_VPS:30633 o usa el puerto correspondiente para gRPC.
Ejemplo de consulta rápida con curl
curl http://IP_DE_TU_VPS:30633/collections
¿Y ahora qué puedo hacer?
- Almacenar y consultar embeddings para sistemas de recomendación, chatbots semánticos y búsqueda por similitud.
- Integrar Qdrant con frameworks de IA como Langchain, Haystack o tu propio backend.
- Escalar a alta disponibilidad añadiendo réplicas y configuración de clúster.
Consejos extra y troubleshooting
- ¿No puedes acceder desde fuera? Revisa tu firewall/puertos y las reglas de tu VPS para los puertos 30633 y 30634.
- Si tu entorno es productivo, usa
StorageClass
y volúmenes dinámicos en vez dehostPath
. - Consulta la documentación oficial de Qdrant para explorar funcionalidades avanzadas como snapshots, shards y más.
¡Y listo! Ahora tienes tu propio motor vectorial de búsquedas semánticas en Kubernetes, capaz de potenciar servicios modernos de IA y búsquedas inteligentes directamente desde tu VPS.