Despliegue de Milvus en Kubernetes: Guía paso a paso para usuarios de Kubernetes
Milvus es una base de datos vectorial de código abierto diseñada para almacenar, indexar y buscar cantidades masivas de datos no estructurados a través de representaciones vectoriales, lo que la hace perfecta para aplicaciones impulsadas por IA, como la búsqueda por similitud, la búsqueda semántica, la generación aumentada de recuperación(RAG), los motores de recomendación y otras tareas de aprendizaje automático.
Pero lo que hace que Milvus sea aún más potente es su perfecta integración con Kubernetes. Si es aficionado a Kubernetes, sabrá que la plataforma es perfecta para orquestar sistemas escalables y distribuidos. Milvus aprovecha al máximo las capacidades de Kubernetes, permitiéndole desplegar, escalar y gestionar fácilmente los clústeres distribuidos de Milvus. Esta guía le proporcionará una guía clara, paso a paso para configurar Milvus en Kubernetes utilizando el Operador Milvus.
Requisitos previos
Antes de comenzar, asegúrese de contar con los siguientes prerrequisitos:
Un clúster Kubernetes en funcionamiento. Si usted está probando localmente,
minikube
es una gran opción.kubectl
instalado y configurado para interactuar con su clúster Kubernetes.Familiaridad con conceptos básicos de Kubernetes como pods, servicios y despliegues.
Paso 1: Instalación de Minikube (para pruebas locales)
Si necesita configurar un entorno local Kubernetes, minikube
es la herramienta para usted. Las instrucciones oficiales de instalación se encuentran en la página de inicio de minikube.
1. Instalar Minikube
Visite la página de versiones de minikube y descargue la versión adecuada para su sistema operativo. Para macOS/Linux, puedes utilizar el siguiente comando:
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
2. Inicie Minikube
$ minikube start
3. Interactuar con el clúster
Ahora, puedes interactuar con tus clusters con kubectl dentro de minikube. Si no ha instalado kubectl, minikube descargará la versión apropiada por defecto.
$ minikube kubectl cluster-info
Alternativamente, puede crear un enlace simbólico al binario de minikube llamado kubectl
para facilitar su uso.
$ sudo ln -s $(which minikube) /usr/local/bin/kubectl
$ kubectl cluster-info
Paso 2: Configuración de la StorageClass
En Kubernetes, una StorageClass define los tipos de almacenamiento disponibles para sus cargas de trabajo, proporcionando flexibilidad en la gestión de diferentes configuraciones de almacenamiento. Antes de continuar, debe asegurarse de que haya una StorageClass predeterminada disponible en su clúster. A continuación se explica cómo comprobarlo y configurar una si es necesario.
1. Comprobar StorageClasses instaladas
Para ver las StorageClasses disponibles en su clúster Kubernetes, ejecute el siguiente comando:
$ kubectl get sc
Esto mostrará la lista de clases de almacenamiento instaladas en su clúster. Si una StorageClass predeterminada ya está configurada, se marcará con (default)
.
2. Configure una StorageClass por defecto (si es necesario)
Si no se ha configurado ninguna StorageClass por defecto, puede crear una definiéndola en un archivo YAML. Utilice el siguiente ejemplo para crear una StorageClass por defecto:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default-storageclass
provisioner: k8s.io/minikube-hostpath
Esta configuración YAML define un StorageClass
llamado default-storageclass
que utiliza el aprovisionador minikube-hostpath
, comúnmente utilizado en entornos de desarrollo local.
3. Aplicar la StorageClass
Una vez creado el archivo default-storageclass.yaml
, aplíquelo a su cluster utilizando el siguiente comando:
$ kubectl apply -f default-storageclass.yaml
Esto configurará la StorageClass predeterminada para su clúster, asegurando que sus necesidades de almacenamiento se gestionen adecuadamente en el futuro.
Paso 3: Instalar Milvus utilizando el Operador Milvus
El Operador Milvus simplifica el despliegue de Milvus en Kubernetes, gestionando el despliegue, escalado y actualizaciones. Antes de instalar el Operador Milvus, necesitará instalar el cert-manager, que proporciona certificados para el servidor webhook utilizado por el Operador Milvus.
1. Instalar cert-manager
Milvus Operator requiere cert-manager para gestionar los certificados para una comunicación segura. Asegúrese de instalar cert-manager versión 1.1.3 o posterior. Para instalarlo, ejecute el siguiente comando:
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
Tras la instalación, verifique que los pods cert-manager se están ejecutando ejecutando:
$ kubectl get pods -n cert-manager
2. Instale el Operador Milvus
Una vez que cert-manager esté en funcionamiento, puede instalar Milvus Operator. Ejecute el siguiente comando para desplegarlo utilizando kubectl
:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/deploy/manifests/deployment.yaml
Puede comprobar si el pod Milvus Operator se está ejecutando mediante el siguiente comando:
$ kubectl get pods -n milvus-operator
3. Despliegue de Milvus Cluster
Una vez que el pod Milvus Operator se está ejecutando, puede desplegar un cluster Milvus con el operador. El siguiente comando despliega un cluster Milvus con sus componentes y dependencias en pods separados utilizando las configuraciones por defecto:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
Para personalizar la configuración de Milvus, tendrá que sustituir el archivo YAML por su propio archivo YAML de configuración. Además de editar o crear manualmente el archivo, puede utilizar la Herramienta de dimensionamiento de Milvus para ajustar las configuraciones y luego descargar el archivo YAML correspondiente.
Para personalizar las configuraciones de Milvus, debe reemplazar el archivo YAML predeterminado por su propia configuración. Puede editar o crear manualmente este archivo, adaptándolo a sus requisitos específicos.
Alternativamente, puede utilizar la Herramienta de dimensionamiento de Milvus para un enfoque más racionalizado. Esta herramienta le permite ajustar varias configuraciones, como la asignación de recursos y las opciones de almacenamiento, y luego descargar el archivo YAML correspondiente con sus configuraciones deseadas. Esto garantiza que su despliegue de Milvus esté optimizado para su caso de uso específico.
Figura: Herramienta de dimensionamiento de Milvus
El despliegue puede tardar algún tiempo en completarse. Puede comprobar el estado de su cluster Milvus a través del comando:
$ kubectl get milvus my-release
Una vez que su clúster Milvus esté listo, todos los pods del clúster Milvus deberían estar ejecutándose o completados:
$ kubectl get pods
Paso 4: Acceso a su cluster Milvus
Una vez desplegado su cluster Milvus, necesita acceder a él reenviando un puerto local al puerto de servicio Milvus. Siga estos pasos para recuperar el puerto de servicio y configurar el reenvío de puertos.
1. Obtener el puerto de servicio
En primer lugar, identifique el puerto de servicio utilizando el siguiente comando. Sustituya <YOUR_MILVUS_PROXY_POD>
por el nombre de su pod proxy Milvus, que normalmente empieza por my-release-milvus-proxy-
:
$ kubectl get pod <YOUR_MILVUS_PROXY_POD> --template ='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
Este comando devolverá el número de puerto que está utilizando su servicio Milvus.
2. Reenvíe el puerto
Para acceder a su cluster Milvus localmente, reenvíe un puerto local al puerto de servicio utilizando el siguiente comando. Sustituya <YOUR_LOCAL_PORT>
por el puerto local que desea utilizar y <YOUR_SERVICE_PORT>
por el puerto de servicio obtenido en el paso anterior:
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus <YOUR_LOCAL_PORT>:<YOUR_SERVICE_PORT>
Este comando permite el reenvío de puertos para escuchar en todas las direcciones IP de la máquina anfitriona. Si sólo necesita que el servicio escuche en localhost
, puede omitir la opción --address 0.0.0.0
.
Una vez configurado el reenvío de puertos, puede acceder a su cluster Milvus a través del puerto local especificado para otras operaciones o integraciones.
Paso 5: Conectarse a Milvus utilizando Python SDK
Con su cluster Milvus en funcionamiento, ahora puede interactuar con él utilizando cualquier SDK Milvus. En este ejemplo, utilizaremos PyMilvus, el SDK Python de Milvus , para conectarnos al cluster y realizar operaciones básicas.
1. Instalar PyMilvus
Para interactuar con Milvus a través de Python, necesita instalar el paquete pymilvus
:
$ pip install pymilvus
2. Conectarse a Milvus
El siguiente es un script Python de ejemplo que se conecta a su cluster Milvus y demuestra cómo realizar operaciones básicas como crear una colección.
from pymilvus import MilvusClient
# Connect to the Milvus server
client = MilvusClient(uri="http://localhost:<YOUR_LOCAL_PORT>")
# Create a collection
collection_name = "example_collection"
if client.has_collection(collection_name):
client.drop_collection(collection_name)
client.create_collection(
collection_name=collection_name,
dimension=768, # The vectors we will use in this demo has 768 dimensions
)
Explicación:
Conectarse a Milvus: El script se conecta al servidor Milvus que se ejecuta en
localhost
utilizando el puerto local que configuró en el Paso 4.Crear una colección: Comprueba si ya existe una colección denominada
example_collection
, la elimina en caso afirmativo y, a continuación, crea una nueva colección con vectores de 768 dimensiones.
Este script establece una conexión con el cluster Milvus y crea una colección, sirviendo como punto de partida para operaciones más complejas como insertar vectores y realizar búsquedas de similitud.
Conclusión
El despliegue de Milvus en una configuración distribuida en Kubernetes desbloquea potentes capacidades para la gestión de datos vectoriales a gran escala, lo que permite una escalabilidad perfecta y aplicaciones de alto rendimiento basadas en IA. Siguiendo esta guía, usted ha aprendido cómo configurar Milvus usando el Operador Milvus, haciendo el proceso ágil y eficiente.
A medida que continúe explorando Milvus, considere escalar su clúster para satisfacer las crecientes demandas o implementarlo en plataformas en la nube como Amazon EKS, Google Cloud o Microsoft Azure. Para una mejor gestión y supervisión, herramientas como Milvus Backup, Birdwatcher y Attu ofrecen un valioso apoyo para mantener la salud y el rendimiento de sus despliegues.
Ahora está listo para aprovechar todo el potencial de Milvus en Kubernetes: ¡feliz despliegue! 🚀
Recursos adicionales
- Requisitos previos
- Paso 1: Instalación de Minikube (para pruebas locales)
- Paso 2: Configuración de la StorageClass
- Paso 3: Instalar Milvus utilizando el Operador Milvus
- Paso 4: Acceso a su cluster Milvus
- Paso 5: Conectarse a Milvus utilizando Python SDK
- Conclusión
- Recursos adicionales
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word