milvus-logo
LFAI
Home
  • Comenzar

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 Helm CLI.

  • Crear un cluster K8s.

  • 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             false 
    
  • Compruebe 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 milvus https://zilliztech.github.io/milvus-helm/

El repositorio de Milvus Helm Charts en https://github.com/milvus-io/milvus-helm ha sido archivado y puede obtener más actualizaciones en https://github.com/zilliztech/milvus-helm como se indica a continuación:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

El repositorio archivado sigue disponible para los gráficos hasta la versión 4.0.31. Para versiones posteriores, utilice el nuevo repositorio.

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 guiará a través de los pasos para iniciar Milvus.

$ helm install my-release milvus/milvus

En el comando anterior, my-release es el nombre de la versión y milvus/milvus es el repositorio de gráficos instalado localmente. Para utilizar un nombre diferente, sustituya my-release por el que considere oportuno.

El comando anterior despliega un cluster Milvus con sus componentes y dependencias utilizando las configuraciones por defecto. Para personalizar estas configuraciones, le recomendamos que utilice la herramienta Milvus Sizing Tool para ajustar las configuraciones en función del tamaño real de sus datos y, a continuación, descargue el archivo YAML correspondiente. Para saber más sobre los parámetros de configuración, consulte Milvus System Configurations Checklist.

  • El nombre de la versión sólo debe contener letras, números y guiones. Los puntos no están permitidos en el nombre de la versión.
  • La línea de comandos por defecto instala la versión cluster de Milvus cuando se instala Milvus con Helm. Se necesita una configuración adicional cuando se instala Milvus de forma independiente.
  • De acuerdo con la guía de migración de API obsoleta de Kubernetes, la versión de la API policy/v1beta1 de PodDisruptionBudget ya no se sirve a partir de v1.25. Se recomienda migrar los manifiestos y clientes de API para utilizar la versión de API policy/v1 en su lugar.
    Como solución para los usuarios que aún utilizan la versión de la API policy/v1beta1 de PodDisruptionBudget en Kubernetes v1.25 y posteriores, puede ejecutar el siguiente comando para instalar Milvus:
    helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
  • Consulte Milvus Helm Chart y Helm para obtener más información.

2. Comprobar el estado del clúster Milvus

Ejecute el siguiente comando para comprobar el estado de todos los pods en su cluster Milvus.

$ kubectl get pods

Una vez que todos los pods estén funcionando, la salida del comando anterior debería ser similar a la siguiente:

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-indexnode-5c5f7b5bd9-l8hjg     1/1    Running   0        3m24s
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-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

3. Reenvíe un puerto local a Milvus

Ejecute el siguiente comando para obtener el puerto en el que sirve su cluster Milvus.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

La salida muestra que la instancia de Milvus sirve en el puerto por defecto 19530.

Si ha desplegado Milvus en modo autónomo, cambie el nombre del pod de my-release-milvus-proxy-xxxxxxxxxx-xxxxx a my-release-milvus-xxxxxxxxxx-xxxxx.

A continuación, ejecute el siguiente comando para reenviar un puerto local al puerto en el que sirve Milvus.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

Opcionalmente, puede utilizar :19530 en lugar de 27017:19530 en el comando anterior para dejar que kubectl asigne un puerto local para usted de modo que no tenga que gestionar conflictos de puertos.

Por defecto, el reenvío de puertos de kubectl sólo escucha en localhost. Utilice la bandera address si desea que Milvus escuche en las direcciones IP seleccionadas o en todas. El siguiente comando hace que port-forward escuche en todas las direcciones IP de la máquina anfitriona.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

Instalación fuera de línea

Si se encuentra en un entorno con restricciones de red, siga el procedimiento de esta sección para iniciar un cluster Milvus.

1. Obtener el manifiesto de Milvus

Ejecute el siguiente comando para obtener el manifiesto de Milvus.

$ helm template my-release milvus/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 pulsar.enabled=false milvus/milvus > milvus_manifest.yaml en 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.yaml plantilla, coloque en ella la configuración que desee y utilice helm template -f values.yaml my-release milvus/milvus > milvus_manifest.yaml para 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

Desinstalar Milvus

Ejecute el siguiente comando para desinstalar Milvus.

$ helm uninstall my-release

Lo que sigue

Una vez instalado Milvus en Docker, puede:

Traducido porDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?