milvus-logo
LFAI
Casa
  • Guida all'amministrazione
    • Aggiornamento

Aggiornamento del cluster Milvus con i grafici Helm

Questa guida descrive come aggiornare il cluster Milvus con i grafici Milvus Helm.

Prerequisiti

  • Versione di Helm >= 3.14.0
  • Versione di Kubernetes >= 1.20.0

Dalla versione 4.2.21 del grafico Milvus-Helm, abbiamo introdotto il grafico pulsar-v3.x come dipendenza. Per la retrocompatibilità, aggiornare helm alla versione 3.14 o successiva e assicurarsi di aggiungere l'opzione --reset-then-reuse-values ogni volta che si utilizza helm upgrade.

Controllare la carta di Milvus Helm

Eseguite i seguenti comandi per verificare le nuove versioni di Milvus.

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

Il repo di Milvus Helm Charts all'indirizzo https://milvus-io.github.io/milvus-helm/ è stato archiviato ed è possibile ottenere ulteriori aggiornamenti da https://zilliztech.github.io/milvus-helm/ come segue:

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

Il repo archiviato è ancora disponibile per i grafici fino alla versione 4.0.31. Per le versioni successive, utilizzare invece il nuovo repo.

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

È possibile scegliere il percorso di aggiornamento per il proprio Milvus come segue:

- Eseguire un aggiornamento continuo](#conduct-a-rolling-upgrade) da Milvus v2.2.3 e versioni successive a v2.5.0-beta.

Eseguire un aggiornamento continuo

A partire da Milvus 2.2.3, è possibile configurare i coordinatori di Milvus per lavorare in modalità active-standby e abilitare la funzione di aggiornamento continuo per loro, in modo che Milvus possa rispondere alle richieste in arrivo durante gli aggiornamenti dei coordinatori. Nelle versioni precedenti, i coordinatori dovevano essere rimossi e poi creati durante un aggiornamento, il che poteva comportare alcuni tempi di inattività del servizio.

L'aggiornamento continuo richiede che i coordinatori lavorino in modalità active-standby. È possibile utilizzare lo script fornito per configurare i coordinatori in modalità active-standby e avviare l'aggiornamento continuo.

Sulla base delle funzionalità di aggiornamento continuo fornite da Kubernetes, lo script di cui sopra impone un aggiornamento ordinato delle distribuzioni in base alle loro dipendenze. Inoltre, Milvus implementa un meccanismo per garantire che i suoi componenti rimangano compatibili con quelli che dipendono da loro durante l'aggiornamento, riducendo in modo significativo i potenziali tempi di inattività del servizio.

Lo script si applica solo all'aggiornamento di Milvus installato con Helm. La tabella seguente elenca i flag di comando disponibili negli script.

ParametriDescrizioneValore predefinitoRichiesto
iNome istanza MilvusNoneVero
nNamespace in cui è installato MilvusdefaultFalso
tVersione Milvus di destinazioneNoneVero
wNuovo tag immagine di Milvusmilvusdb/milvus:v2.2.3Vero
oOperazioneupdateFalso

Dopo essersi assicurati che tutte le distribuzioni nella vostra istanza Milvus siano nello stato normale. È possibile eseguire il seguente comando per aggiornare l'istanza Milvus alla versione 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. Lo script codifica l'ordine di aggiornamento delle distribuzioni e non può essere modificato.
  2. Lo script utilizza kubectl patch per aggiornare le distribuzioni e kubectl rollout status per controllare il loro stato.
  3. Lo script usa kubectl patch per aggiornare l'etichetta app.kubernetes.io/version delle distribuzioni con quella specificata dopo il flag -t nel comando.

Aggiornare Milvus con Helm

Per aggiornare Milvus da una versione minore precedente alla v2.2.3 alla più recente, eseguire i seguenti comandi:

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

Utilizzare la versione del grafico Helm nel comando precedente. Per i dettagli su come ottenere la versione del grafico di Helm, fare riferimento a Controllare la versione di Milvus.

Migrazione dei metadati

A partire da Milvus 2.2.0, i metadati sono incompatibili con quelli delle versioni precedenti. I seguenti esempi ipotizzano un aggiornamento da Milvus 2.1.4 a Milvus 2.2.0.

1. Controllare la versione di Milvus

Eseguire $ helm list per verificare la versione dell'applicazione Milvus. Si può notare che APP VERSION è 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. Controllare i pod in esecuzione

Eseguire $ kubectl get pods per controllare i pod in esecuzione. Si può vedere il seguente output.

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. Controllare il tag immagine

Controllare il tag image per il pod my-release-milvus-proxy-6c548f787f-scspp. È possibile vedere che la release del cluster Milvus è v2.1.4.

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

4. Migrare i metadati

Un cambiamento importante in Milvus 2.2 è la struttura dei metadati degli indici dei segmenti. Pertanto, è necessario utilizzare Helm per migrare i metadati durante l'aggiornamento di Milvus dalla v2.1.x alla v2.2.0. Ecco uno script per migrare i metadati in modo sicuro.

Questo script si applica solo a Milvus installato su un cluster K8s. Se si verifica un errore durante il processo, tornare alla versione precedente con l'operazione di rollback.

La tabella seguente elenca le operazioni che si possono fare per la migrazione dei metadati.

ParametriDescrizioneValore predefinitoRichiesto
iIl nome dell'istanza Milvus.NoneVero
nLo spazio dei nomi in cui è installato Milvus.defaultFalso
sLa versione di origine di Milvus.NoneVero
tLa versione di Milvus di destinazione.NoneVero
rIl percorso principale di Milvus meta.by-devFalso
wIl nuovo tag immagine di Milvus.milvusdb/milvus:v2.2.0Falso
mIl tag immagine della migrazione meta.milvusdb/meta-migration:v2.2.0Falso
oL'operazione di metamigrazione.migrateFalso
dSe eliminare il pod di migrazione al termine della migrazione.falseFalso
cLa classe di archiviazione per il pvc di metamigrazione.default storage classFalso
eL'enpoint etcd usato da milvus.etcd svc installed with milvusFalso

1. Migrare i metadati

  1. Scaricare lo script di migrazione.
  2. Arrestare i componenti di Milvus. Qualsiasi sessione live nell'eccd di Milvus può causare un fallimento della migrazione.
  3. Creare un backup dei metadati Milvus.
  4. Migrare i metadati di Milvus.
  5. Avviare i componenti Milvus con una nuova immagine.

2. Aggiornamento di Milvus da v2.1.x a 2.2.0

I comandi che seguono presuppongono l'aggiornamento di Milvus dalla v2.1.4 alla 2.2.0. Modificateli in base alle vostre esigenze.

  1. Specificare il nome dell'istanza Milvus, la versione Milvus di origine e la versione Milvus di destinazione.

    ./migrate.sh -i my-release -s 2.1.4 -t 2.2.0
    
  2. Specificate lo spazio dei nomi con -n se Milvus non è installato nello spazio dei nomi predefinito di K8s.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0
    
  3. Specificare il percorso della radice con -r se Milvus è installato con il percorso personalizzato rootpath.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
    
  4. Specificate il tag dell'immagine con -w se il vostro Milvus è installato con un image personalizzato.

    ./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. Impostare -d true se si desidera rimuovere automaticamente il pod di migrazione al termine della migrazione.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -w milvusdb/milvus:v2.2.0 -d true
    
  6. Se la migrazione non va a buon fine, si può tornare indietro e migrare di nuovo.

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

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?