Ejecutar Milvus en Kubernetes con Helm
Esta página ilustra cómo iniciar una instancia de Milvus en Kubernetes utilizando los gráficos de Milvus Helm.
Visión general
Helm utiliza un formato de empaquetado llamado charts. Un gráfico es una colección de archivos que describen un conjunto relacionado de recursos de Kubernetes. Milvus proporciona un conjunto de gráficos para ayudarle a desplegar dependencias y componentes de Milvus.
Requisitos previos
Instale una StorageClass. Puede comprobar la StorageClass instalada de la siguiente manera.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate falseCompruebe los requisitos de hardware y software antes de la instalación.
Antes de instalar Milvus, se recomienda utilizar Milvus Sizing Tool para estimar los requisitos de hardware basados en el tamaño de sus datos. Esto ayuda a garantizar un rendimiento y una asignación de recursos óptimos para su instalación de Milvus.
Si encuentra algún problema al tirar de la imagen, póngase en contacto con nosotros en community@zilliz.com con detalles sobre el problema, y le proporcionaremos el soporte necesario.
Instalar Milvus Helm Chart
Antes de instalar Milvus Helm Charts, necesita añadir el repositorio Milvus Helm.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
El repositorio de Milvus Helm Charts en https://github.com/milvus-io/milvus-helm ha sido archivado. Ahora usamos el nuevo repositorio en https://github.com/zilliztech/milvus-helm. El repositorio archivado aún está disponible para gráficos hasta la versión 4.0.31, pero utilice el nuevo repositorio para versiones posteriores.
A continuación, obtenga los gráficos Milvus del repositorio de la siguiente manera:
$ helm repo update
Siempre puede ejecutar este comando para obtener las últimas cartas Milvus Helm.
Instalación en línea
1. Despliegue un cluster Milvus
Una vez que haya instalado la carta Helm, puede iniciar Milvus en Kubernetes. Esta sección le guía a través del despliegue de un cluster Milvus.
¿Necesita un despliegue independiente en su lugar?
Si prefiere desplegar Milvus en modo autónomo (nodo único) para desarrollo o pruebas, utilice este comando:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
Nota: El modo autónomo utiliza Woodpecker como cola de mensajes predeterminada y habilita el componente Streaming Node. Para más detalles, consulte la Descripción general de la arquitectura y el Uso de Woodpecker.
Despliegue del cluster Milvus:
El siguiente comando despliega un cluster Milvus con configuración optimizada para v2.6.15, utilizando Woodpecker como cola de mensajes recomendada:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--set pulsarv3.enabled=false \
--set woodpecker.enabled=true \
--set streaming.enabled=true \
--set indexNode.enabled=false
Qué hace este comando:
- Utiliza Woodpecker como cola de mensajes (recomendado para reducir el mantenimiento)
- Activa el nuevo componente Streaming Node para mejorar el rendimiento.
- Desactiva el nodo de índice heredado (la funcionalidad la gestiona ahora el nodo de datos).
- Desactiva Pulsar para utilizar en su lugar Woodpecker
Cambios de arquitectura en Milvus 2.6.x:
- Cola de mensajes: Ahora se recomienda Woodpecker (reduce el mantenimiento de la infraestructura en comparación con Pulsar)
- Nuevo componente: Streaming Node se introduce y se activa por defecto
- Componentes fusionados: El nodo de índice y el nodo de datos se combinan en un único nodo de datos.
Para más detalles sobre la arquitectura, consulte la Visión general de la arquitectura.
Opciones alternativas de colas de mensajes:
Si prefiere utilizar Pulsar (opción tradicional) en lugar de Woodpecker:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--set streaming.enabled=true \
--set indexNode.enabled=false
Pasos siguientes: El comando anterior despliega Milvus con las configuraciones recomendadas. Para uso en producción:
- Utilice la herramienta Milvus Sizing Tool para optimizar las configuraciones en función del tamaño de sus datos
- Revise la Lista de comprobación de configuraciones del sistema Milvus para conocer las opciones de configuración avanzadas
Notas importantes:
- Nomenclatura de versiones: Utilice solo letras, números y guiones (no se permiten puntos)
- Kubernetes v1.25+: Si tiene problemas con PodDisruptionBudget, utilice esta solución:
helm install my-release zilliztech/milvus \ --set pulsar.bookkeeper.pdb.usePolicy=false \ --set pulsar.broker.pdb.usePolicy=false \ --set pulsar.proxy.pdb.usePolicy=false \ --set pulsar.zookeeper.pdb.usePolicy=false
Para obtener más información, consulte Milvus Helm Chart y la documentación de Helm.
2. Compruebe el estado del clúster Milvus
Verifique que su despliegue se ha realizado correctamente comprobando el estado del pod:
kubectl get pods
Espere a que todos los pods muestren el estado "Running". Con la configuración v2.6.15, debería ver pods similares a:
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 3m23s
my-release-etcd-1 1/1 Running 0 3m23s
my-release-etcd-2 1/1 Running 0 3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm 1/1 Running 0 3m23s
my-release-milvus-mixcoord-7fb9488465-dmbbj 1/1 Running 0 3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv 1/1 Running 0 3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg 1/1 Running 0 3m24s
my-release-milvus-streaming-node-xxxxxxxxx 1/1 Running 0 3m24s
my-release-minio-0 1/1 Running 0 3m23s
my-release-minio-1 1/1 Running 0 3m23s
my-release-minio-2 1/1 Running 0 3m23s
my-release-minio-3 1/1 Running 0 3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc 1/1 Running 0 3m24s
my-release-pulsar-bookkeeper-0 1/1 Running 0 3m23s
my-release-pulsar-bookkeeper-1 1/1 Running 0 98s
my-release-pulsar-broker-556ff89d4c-2m29m 1/1 Running 0 3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-0 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-metadata-98zbr 0/1 Completed 0 3m24s
Componentes clave a verificar:
- Componentes Milvus:
mixcoord,datanode,querynode,proxy,streaming-node - Dependencias:
etcd(metadatos),minio(almacenamiento de objetos),pulsar(cola de mensajes)
También puede acceder a la WebUI de Milvus en http://127.0.0.1:9091/webui/ una vez que se haya configurado el reenvío de puertos (véase el paso siguiente). Para más detalles, consulte Milvus WebUI.
3. Conectarse a Milvus
Para conectarse a su cluster Milvus desde fuera de Kubernetes, necesita configurar el reenvío de puertos.
Configure el reenvío de puertos:
kubectl port-forward service/my-release-milvus 27017:19530
Este comando reenvía su puerto local 27017 al puerto de Milvus 19530. Usted debe ver:
Forwarding from 127.0.0.1:27017 -> 19530
Detalles de la conexión:
- Conexión local:
localhost:27017 - Puerto por defecto de Milvus:
19530
Opciones para el reenvío de puertos:
- Auto-assign local port: Utilice
:19530en lugar de27017:19530para que kubectl elija un puerto disponible - Escuchar en todas las interfaces: Añadir
--address 0.0.0.0para permitir conexiones desde otras máquinas:kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530 - Despliegue autónomo: Si utiliza el modo autónomo, el nombre del servicio sigue siendo el mismo
Mantenga este terminal abierto mientras utiliza Milvus. Ahora puede conectarse a Milvus utilizando cualquier SDK de Milvus en localhost:27017.
(Opcional) Actualizar las configuraciones de Milvus
Puede actualizar las configuraciones de su cluster Milvus editando el archivo values.yaml y aplicándolo de nuevo.
Cree un archivo
values.yamlcon las configuraciones deseadas.A continuación se asume que desea habilitar
proxy.http.extraConfigFiles: user.yaml: |+ proxy: http: enabled: truePara conocer los elementos de configuración aplicables, consulte Configuración del sistema.
Aplique el archivo
values.yaml.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
Compruebe las configuraciones actualizadas.
helm get values my-releaseLa salida debería mostrar las configuraciones actualizadas.
Acceso a Milvus WebUI
Milvus se suministra con una herramienta GUI integrada llamada Milvus WebUI a la que puede acceder a través de su navegador. Milvus Web UI mejora la observabilidad del sistema con una interfaz sencilla e intuitiva. Puede utilizar Milvus Web UI para observar las estadísticas y métricas de los componentes y dependencias de Milvus, comprobar los detalles de la base de datos y la colección, y listar las configuraciones detalladas de Milvus. Para más detalles sobre Milvus Web UI, consulte Milvus WebUI
Para habilitar el acceso a Milvus Web UI, necesita reenviar el puerto del pod proxy a un puerto local.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091
Ahora, puede acceder a Milvus Web UI en http://localhost:27018.
Instalación sin conexión
Si se encuentra en un entorno con restricciones de red, siga el procedimiento de esta sección para iniciar un cluster Milvus.
1. Obtenga el manifiesto de Milvus
Ejecute el siguiente comando para obtener el manifiesto de Milvus.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
El comando anterior genera plantillas de gráficos para un cluster Milvus y guarda el resultado en un archivo de manifiesto llamado milvus_manifest.yaml. Utilizando este manifiesto, puede instalar un cluster Milvus con sus componentes y dependencias en pods separados.
- Para instalar una instancia de Milvus en el modo autónomo en el que todos los componentes de Milvus están contenidos en un único pod, debe ejecutar
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false zilliztech/milvus > milvus_manifest.yamlen su lugar para renderizar plantillas de gráficos para una instancia de Milvus en modo autónomo. - Para cambiar las configuraciones de Milvus, descargue la plantilla
value.yamlplantilla, coloque en ella la configuración que desee y utilicehelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yamlpara renderizar el manifiesto en consecuencia.
2. Descargar el script de extracción de imágenes
El script de extracción de imágenes está desarrollado en Python. Debe descargar el script junto con sus dependencias en el archivo requirement.txt.
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py
3. Extraer y guardar imágenes
Ejecute el siguiente comando para extraer y guardar las imágenes necesarias.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
Las imágenes se extraen en una subcarpeta llamada images en el directorio actual.
4. Cargar imágenes
Ahora puede cargar las imágenes a los hosts en el entorno restringido a la red de la siguiente manera:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. Despliegue de Milvus
$ kubectl apply -f milvus_manifest.yaml
Hasta ahora, puede seguir los pasos 2 y 3 de la instalación en línea para comprobar el estado del cluster y reenviar un puerto local a Milvus.
Actualice el cluster Milvus en ejecución
Ejecute el siguiente comando para actualizar su cluster Milvus en ejecución a la última versión:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Desinstalar Milvus
Ejecute el siguiente comando para desinstalar Milvus.
$ helm uninstall my-release
Lo que sigue
Una vez instalado Milvus en Docker, puede:
Comprobar Hello Milvus para ver qué puede hacer Milvus.
Aprender las operaciones básicas de Milvus:
Despliegue su clúster Milvus en nubes:
Explore Milvus WebUI, una interfaz web intuitiva para la observabilidad y gestión de Milvus.
Explore Milvus Backup, una herramienta de código abierto para las copias de seguridad de los datos de Milvus.
Explore Birdwatcher, una herramienta de código abierto para depurar Milvus y actualizaciones de configuración dinámicas.
Explore Attu, una herramienta GUI de código abierto para la gestión intuitiva de Milvus.