• Informazioni su Milvus
  • Inizia
  • Concetti
  • Guida per l'utente
  • Importazione dei dati
  • Strumenti di intelligenza artificiale
  • Guida all'amministrazione
  • Strumenti
  • Integrazioni
  • Tutorial
  • Domande frequenti
  • API Reference
MilvusOperator, Helm, DockerCompose

Aggiornamento di Milvus Standalone con Milvus Operator

Questa guida descrive come aggiornare una distribuzione standalone di Milvus 2.6.x alla versione v3.0.0 utilizzando Milvus Operator.

Questa procedura è stata verificata dal Milvus 2.6.20 al Milvus v3.0.0 con Milvus Operator 1.3.0, Woodpecker, etcd all'interno del cluster e MinIO all'interno del cluster. Se si utilizza un’altra versione patch di Milvus 2.6.x, una versione diversa di Operator, una coda di messaggi o una configurazione delle dipendenze diversa, verificare prima l’aggiornamento in un ambiente non di produzione.

Prerequisiti

  • Un cluster Kubernetes con una distribuzione standalone di Milvus 2.6.x gestita da Milvus Operator
  • kubectl accesso al cluster
  • Il manifesto completo della risorsa personalizzata (CR) di Milvus utilizzato per la distribuzione esistente
  • Il metodo di installazione e i manifest utilizzati per l’attuale Milvus Operator
  • Un backup aggiornato dei metadati e dei dati persistenti di Milvus

Limitazioni relative alle code di messaggi: durante l’aggiornamento a Milvus v3.0.0, è necessario mantenere la scelta attuale della coda di messaggi. Il passaggio da un sistema di code di messaggi a un altro durante l’aggiornamento non è supportato. Il supporto per la modifica dei sistemi di code di messaggi sarà disponibile nelle versioni future.

Questa procedura non convalida un downgrade o un rollback che comporti il ripristino dell’immagine di Milvus alla versione 2.6.x. Dopo che la versione v3.0.0 ha scritto i dati, un rollback che riguarda solo l’immagine potrebbe non riuscire a leggere lo stato aggiornato. Se l’aggiornamento fallisce, interrompere le operazioni di scrittura e utilizzare un piano di ripristino che ripristini i backup dei metadati e dei dati persistenti precedenti all’aggiornamento. Verificare prima il piano di ripristino in un ambiente non di produzione.

Processo di aggiornamento

Passaggio 1: Eseguire il backup del CR Milvus corrente

Salvare il CR corrente prima di modificare la distribuzione:

kubectl get milvus <instance-name> \
  --namespace <namespace> \
  --output yaml > milvus-before-upgrade.yaml

Utilizzare il manifesto di origine della distribuzione esistente come manifesto di aggiornamento. Non applicare direttamente il file di backup esportato senza aver prima rimosso i metadati gestiti dal server e i campi di stato.

Passaggio 2: Verifica della versione di Milvus Operator

Verificare l'immagine utilizzata da Milvus Operator installato:

kubectl get deployments --all-namespaces \
  -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .spec.template.spec.containers[*]}{.image}{" "}{end}{"\n"}{end}' \
  | grep milvus-operator

L'aggiornamento convalidato ha mantenuto Milvus Operator alla versione 1.3.0. Mantieni la versione di Operator che attualmente gestisce la tua distribuzione Milvus 2.6.x, a meno che la tua politica di supporto non richieda un aggiornamento separato di Operator. Non effettuare il downgrade di un Operator più recente alla versione testata. Se è necessario modificare la versione dell’Operator, utilizzare lo stesso metodo di installazione (Helm o kubectl ) e lo stesso nome di release e namespace dell’installazione esistente, quindi convalidare la modifica dell’Operator prima di aggiornare il CR di Milvus.

Passaggio 3: aggiornare l’immagine di Milvus

Nel manifesto CR completo di Milvus, modificare solo spec.components.image. Mantenere la modalità esistente, le impostazioni dei componenti, la coda dei messaggi, etcd, lo storage e le altre impostazioni delle dipendenze. Il seguente estratto mostra il campo da modificare; non sostituire il CR completo con questo estratto.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: <instance-name>
  namespace: <namespace>
spec:
  components:
    image: milvusdb/milvus:v3.0.0

Applicare il manifesto CR completo:

kubectl apply --filename milvus.yaml

Verifica l’aggiornamento

Controllare lo stato del CR, lo stato dei pod e le immagini dei container:

kubectl get milvus <instance-name> \
  --namespace <namespace> \
  --output jsonpath='{.status.status}{"\t"}{.status.currentImage}{"\n"}'

kubectl get pods --namespace <namespace>

kubectl get pods --namespace <namespace> \
  -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'

Verificare che il CR di Milvus riporti ` Healthy`, che l’immagine corrente sia ` milvusdb/milvus:v3.0.0` e che le raccolte esistenti rimangano interrogabili e ricercabili. Completare questi controlli prima di abilitare qualsiasi funzionalità specifica della versione v3.0.0.