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:
Aggiornare Milvus utilizzando Helm per un aggiornamento da una release minore precedente alla v2.2.3 alla v2.5.0-beta.
Migrare i metadati prima dell'aggiornamento da Milvus v2.1.x a v2.5.0-beta.
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.
Parametri | Descrizione | Valore predefinito | Richiesto |
---|---|---|---|
i | Il nome dell'istanza Milvus. | None | Vero |
n | Lo spazio dei nomi in cui è installato Milvus. | default | Falso |
s | La versione di origine di Milvus. | None | Vero |
t | La versione di Milvus di destinazione. | None | Vero |
r | Il percorso principale di Milvus meta. | by-dev | Falso |
w | Il nuovo tag immagine di Milvus. | milvusdb/milvus:v2.2.0 | Falso |
m | Il tag immagine della migrazione meta. | milvusdb/meta-migration:v2.2.0 | Falso |
o | L'operazione di metamigrazione. | migrate | Falso |
d | Se eliminare il pod di migrazione al termine della migrazione. | false | Falso |
c | La classe di archiviazione per il pvc di metamigrazione. | default storage class | Falso |
e | L'enpoint etcd usato da milvus. | etcd svc installed with milvus | Falso |
1. Migrare i metadati
- Scaricare lo script di migrazione.
- Arrestare i componenti di Milvus. Qualsiasi sessione live nell'eccd di Milvus può causare un fallimento della migrazione.
- Creare un backup dei metadati Milvus.
- Migrare i metadati di Milvus.
- 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.
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
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
Specificare il percorso della radice con
-r
se Milvus è installato con il percorso personalizzatorootpath
../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
Specificate il tag dell'immagine con
-w
se il vostro Milvus è installato con unimage
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
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
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