milvus-logo
LFAI
Home
  • Guía de administración
    • Actualizar

Actualizar Milvus Cluster con Helm Chart

Esta guía describe cómo actualizar su cluster Milvus con cartas Milvus Helm.

Requisitos previos

  • Versión de Helm >= 3.14.0
  • Versión de Kubernetes >= 1.20.0

Desde la versión 4.2.21 de Milvus-Helm chart, hemos introducido pulsar-v3.x chart como dependencia. Para compatibilidad con versiones anteriores, por favor actualice su helm a v3.14 o versión posterior, y asegúrese de añadir la opción --reset-then-reuse-values siempre que utilice helm upgrade.

Comprobar la carta Milvus Helm

Ejecute los siguientes comandos para comprobar las nuevas versiones de Milvus.

$ helm repo update zilliztech
$ helm search repo zilliztech/milvus --versions

El repositorio de Milvus Helm Charts en https://milvus-io.github.io/milvus-helm/ ha sido archivado y puede obtener más actualizaciones en https://zilliztech.github.io/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 --reset-then-reuse-values

El repositorio archivado sigue disponible para las cartas hasta la versión 4.0.31. Para versiones posteriores, utilice el nuevo repositorio.

NAME                    CHART VERSION   APP VERSION             DESCRIPTION                                       
zilliztech/milvus       4.1.34          2.4.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.33          2.4.4                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.32          2.4.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.31          2.4.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.30          2.4.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.29          2.4.0                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.24          2.3.11                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.23          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.22          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.21          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.20          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.18          2.3.10                  Milvus is an open-source vector database built ... 
zilliztech/milvus       4.1.18          2.3.9                   Milvus is an open-source vector database built ...                                       
zilliztech/milvus       4.1.17          2.3.8                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.16          2.3.7                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.15          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.14          2.3.6                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.13          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.12          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.11          2.3.4                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.10          2.3.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.9           2.3.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.8           2.3.2                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.7           2.3.2                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.6           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.5           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.4           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.3           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.2           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.1           2.3.0                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.0           2.3.0                   Milvus is an open-source vector database built ...

Puede elegir la ruta de actualización para su Milvus de la siguiente manera:

- Realice una actualización continua](#conduct-a-rolling-upgrade) de Milvus v2.2.3 y versiones posteriores a v2.5.0-beta.

Realizar una actualización continua

Desde Milvus 2.2.3, puede configurar los coordinadores de Milvus para que funcionen en modo activo-espera y habilitar la función de actualización continua para ellos, de forma que Milvus pueda responder a las solicitudes entrantes durante las actualizaciones de los coordinadores. En versiones anteriores, los coordinadores debían eliminarse y luego crearse durante una actualización, lo que podía introducir cierto tiempo de inactividad del servicio.

Las actualizaciones continuas requieren que los coordinadores trabajen en modo activo-espera. Puede utilizar el script que le proporcionamos para configurar los coordinadores para que trabajen en modo de espera activo e iniciar la actualización continua.

Basándose en las capacidades de actualización continua proporcionadas por Kubernetes, el script anterior impone una actualización ordenada de los despliegues según sus dependencias. Además, Milvus implementa un mecanismo para garantizar que sus componentes sigan siendo compatibles con aquellos que dependen de ellos durante la actualización, lo que reduce significativamente el posible tiempo de inactividad del servicio.

El script sólo se aplica a la actualización de Milvus instalado con Helm. La siguiente tabla enumera los indicadores de comando disponibles en los scripts.

ParámetrosDescripciónValor por defectoRequerido
iNombre de instancia MilvusNoneVerdadero
nEspacio de nombres en el que está instalado MilvusdefaultFalso
tVersión de Milvus de destinoNoneVerdadero
wNueva etiqueta de imagen de Milvusmilvusdb/milvus:v2.2.3Verdadero
oOperaciónupdateFalso

Una vez que se haya asegurado de que todos los despliegues en su instancia de Milvus están en su estado normal. Puede ejecutar el siguiente comando para actualizar la instancia de Milvus a 2.5.0-beta.

sh rollingUpdate.sh -n default -i my-release -o update -t 2.5.0-beta -w 'milvusdb/milvus:v2.5.0-beta'
  1. El script codifica el orden de actualización de los despliegues y no puede cambiarse.
  2. El script utiliza kubectl patch para actualizar los despliegues y kubectl rollout status para ver su estado.
  3. El script utiliza kubectl patch para actualizar la etiqueta app.kubernetes.io/version de los despliegues a la especificada después de la bandera -t en el comando.

Actualizar Milvus usando Helm

Para actualizar Milvus desde una versión menor anterior a v2.2.3 a la última, ejecute los siguientes comandos:

helm repo update zilliztech
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values --version=4.1.24 # use the helm chart version here

Utilice la versión del gráfico Helm en el comando anterior. Para más detalles sobre cómo obtener la versión del gráfico Helm, consulte Comprobar la versión de Milvus.

Migrar los metadatos

Desde Milvus 2.2.0, los metadatos son incompatibles con los de versiones anteriores. Los siguientes fragmentos de ejemplo suponen una actualización de Milvus 2.1.4 a Milvus 2.2.0.

1. Compruebe la versión de Milvus

Ejecute $ helm list para comprobar la versión de su aplicación Milvus. Puede ver que APP VERSION es 2.1.4.

NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION    
new-release         default     1           2022-11-21 15:41:25.51539 +0800 CST     deployed    milvus-3.2.18   2.1.4 

2. 2. Compruebe los pods en ejecución

Ejecute $ kubectl get pods para comprobar los pods en ejecución. Puede ver la siguiente salida.

NAME                                             READY   STATUS      RESTARTS   AGE
my-release-etcd-0                               1/1     Running     0          21m
my-release-etcd-1                               1/1     Running     0          21m
my-release-etcd-2                               1/1     Running     0          21m
my-release-milvus-datacoord-664c58798d-fl75s    1/1     Running     0          21m
my-release-milvus-datanode-5f75686c55-xfg2r     1/1     Running     0          21m
my-release-milvus-indexcoord-5f98b97589-2l48r   1/1     Running     0          21m
my-release-milvus-indexnode-857b4ddf98-vmd75    1/1     Running     0          21m
my-release-milvus-proxy-6c548f787f-scspp        1/1     Running     0          21m
my-release-milvus-querycoord-c454f44cd-dwmwq    1/1     Running     0          21m
my-release-milvus-querynode-76bb4946d-lbrz6     1/1     Running     0          21m
my-release-milvus-rootcoord-7764c5b686-62msm    1/1     Running     0          21m
my-release-minio-0                              1/1     Running     0          21m
my-release-minio-1                              1/1     Running     0          21m
my-release-minio-2                              1/1     Running     0          21m
my-release-minio-3                              1/1     Running     0          21m
my-release-pulsar-bookie-0                      1/1     Running     0          21m
my-release-pulsar-bookie-1                      1/1     Running     0          21m
my-release-pulsar-bookie-2                      1/1     Running     0          21m
my-release-pulsar-bookie-init-tjxpj             0/1     Completed   0          21m
my-release-pulsar-broker-0                      1/1     Running     0          21m
my-release-pulsar-proxy-0                       1/1     Running     0          21m
my-release-pulsar-pulsar-init-c8vvc             0/1     Completed   0          21m
my-release-pulsar-recovery-0                    1/1     Running     0          21m
my-release-pulsar-zookeeper-0                   1/1     Running     0          21m
my-release-pulsar-zookeeper-1                   1/1     Running     0          20m
my-release-pulsar-zookeeper-2                   1/1     Running     0          20m

3. Compruebe la etiqueta de imagen

Compruebe la etiqueta de imagen del pod my-release-milvus-proxy-6c548f787f-scspp. Puede ver que la versión de su clúster Milvus es v2.1.4.

$ kubectl get pods my-release-milvus-proxy-6c548f787f-scspp -o=jsonpath='{$.spec.containers[0].image}'
# milvusdb/milvus:v2.1.4

4. Migrar los metadatos

Un cambio importante en Milvus 2.2 es la estructura de metadatos de los índices de segmentos. Por lo tanto, necesita utilizar Helm para migrar los metadatos mientras actualiza Milvus de v2.1.x a v2.2.0. Aquí tiene un script para migrar sus metadatos de forma segura.

Este script sólo se aplica a Milvus instalado en un cluster K8s. Retroceda primero a la versión anterior con la operación de retroceso si se produce un error durante el proceso.

La siguiente tabla enumera las operaciones que puede realizar para la migración de metadatos.

ParámetrosDescripciónValor por defectoRequerido
iEl nombre de instancia de Milvus.NoneVerdadero
nEl espacio de nombres en el que está instalado Milvus.defaultFalso
sLa versión fuente de Milvus.NoneVerdadero
tLa versión Milvus de destino.NoneVerdadero
rLa ruta raíz de Milvus meta.by-devFalso
wLa nueva etiqueta de imagen de Milvus.milvusdb/milvus:v2.2.0Falso
mLa etiqueta de imagen de migración meta.milvusdb/meta-migration:v2.2.0Falso
oLa meta operación de migración.migrateFalso
dSi desea eliminar la vaina de migración una vez finalizada la migración.falseFalso
cLa clase de almacenamiento para el pvc de meta migración.default storage classFalso
eEl enpoint etcd utilizado por milvus.etcd svc installed with milvusFalso

1. Migrar los metadatos

  1. Descargue el script de migración.
  2. Detenga los componentes de Milvus. Cualquier sesión en vivo en el etcd de Milvus puede causar un fallo en la migración.
  3. Cree una copia de seguridad de los metadatos de Milvus.
  4. Migre los metadatos de Milvus.
  5. Inicie los componentes de Milvus con una nueva imagen.

2. Actualizar Milvus de v2.1.x a 2.2.0

Los siguientes comandos asumen que usted actualiza Milvus de v2.1.4 a 2.2.0. Cámbielos por las versiones que se ajusten a sus necesidades.

  1. Especifique el nombre de la instancia de Milvus, la versión de Milvus de origen y la versión de Milvus de destino.

    ./migrate.sh -i my-release -s 2.1.4 -t 2.2.0
    
  2. Especifique el espacio de nombres con -n si su Milvus no está instalado en el espacio de nombres predeterminado de K8s.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0
    
  3. Especifique la ruta raíz con -r si su Milvus está instalado con la costumbre rootpath.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
    
  4. Especifique la etiqueta de imagen con -w si su Milvus está instalado con la personalizada image.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -w milvusdb/milvus:v2.2.0
    
  5. Establezca -d true si desea eliminar automáticamente el pod de migración una vez finalizada la migración.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -w milvusdb/milvus:v2.2.0 -d true
    
  6. Retroceda y migre de nuevo si la migración falla.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -o rollback -w milvusdb/milvus:v2.1.4
    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -o migrate -w milvusdb/milvus:v2.2.0
    

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?