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

Actualizar Milvus Standalone con Milvus Operator

Esta guía describe cómo actualizar su Milvus Standalone con Milvus Operator.

Actualice su operador Milvus

Ejecute el siguiente comando para actualizar la versión de su operador Milvus a v1.0.1.

helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator

Una vez que haya actualizado su operador Milvus a la última versión, tiene las siguientes opciones:

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 modo 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.

Basándose en las capacidades de actualización continua proporcionadas por Kubernetes, el operador Milvus aplica 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.

La función de actualización continua está desactivada por defecto. Es necesario habilitarla explícitamente a través de un archivo de configuración.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingUpgrade # Default value, can be omitted
    image: milvusdb/milvus:v2.4.18

En el archivo de configuración anterior, establezca spec.components.enableRollingUpdate en true y spec.components.image en la versión de Milvus deseada.

Por defecto, Milvus realiza una actualización continua para los coordinadores de forma ordenada, en la que sustituye las imágenes del pod de coordinador una tras otra. Para reducir el tiempo de actualización, considere configurar spec.components.imageUpdateMode a all para que Milvus reemplace todas las imágenes de pod al mismo tiempo.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: all
    image: milvusdb/milvus:v2.4.18

Puede configurar spec.components.imageUpdateMode a rollingDowngrade para que Milvus reemplace las imágenes de pod coordinador con una versión inferior.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingDowngrade
    image: milvusdb/milvus:<some-older-version>

Luego guarde su configuración como un archivo YAML (por ejemplo, milvusupgrade.yml) y parchee este archivo de configuración a su instancia Milvus como sigue:

kubectl patch -f milvusupgrade.yml

Actualizar Milvus cambiando su imagen

En casos normales, puede simplemente actualizar su Milvus a la última versión cambiando su imagen. Sin embargo, tenga en cuenta que habrá un cierto tiempo de inactividad al actualizar Milvus de esta manera.

Componga un fichero de configuración como el siguiente y guárdelo como milvusupgrade.yaml:

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
    name: my-release
labels:
    app: milvus
spec:
  # Omit other fields ...
  components:
   image: milvusdb/milvus:v2.4.18

A continuación, ejecute lo siguiente para realizar la actualización:

kubectl patch -f milvusupgrade.yaml

Migrar los metadatos

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

1. Crear un archivo .yaml para la migración de metadatos

Cree un archivo de migración de metadatos. El siguiente es un ejemplo. Debe especificar name, sourceVersion y targetVersion en el archivo de configuración. El siguiente ejemplo establece name en my-release-upgrade, sourceVersion en v2.1.4 y targetVersion en v2.4.18. Esto significa que su instancia de Milvus se actualizará de v2.1.4 a v2.4.18.

apiVersion: milvus.io/v1beta1
kind: MilvusUpgrade
metadata:
  name: my-release-upgrade
spec:
  milvus:
    namespace: default
    name: my-release
  sourceVersion: "v2.1.4"
  targetVersion: "v2.4.18"
  # below are some omit default values:
  # targetImage: "milvusdb/milvus:v2.4.18"
  # toolImage: "milvusdb/meta-migration:v2.2.0"
  # operation: upgrade
  # rollbackIfFailed: true
  # backupPVC: ""
  # maxRetry: 3

2. Aplique la nueva configuración

Ejecute el siguiente comando para aplicar la nueva configuración.

$ kubectl create -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvusupgrade.yaml

3. Compruebe el estado de la migración de metadatos

Ejecute el siguiente comando para comprobar el estado de la migración de metadatos.

kubectl describe milvus release-name

El estado de ready en la salida significa que la migración de metadatos se ha realizado correctamente.

También puede ejecutar kubectl get pod para comprobar todos los pods. Si todos los pods son ready, la migración de metadatos se ha realizado correctamente.

4. Elimine my-release-upgrade

Cuando la actualización se haya realizado correctamente, elimine my-release-upgrade en el archivo YAML.

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?