Mise à niveau du cluster Milvus avec les cartes Helm
Ce guide décrit comment mettre à niveau votre cluster Milvus avec les cartes Milvus Helm.
Conditions préalables
- Version de Helm >= 3.14.0
- Version de Kubernetes >= 1.20.0
Depuis la version 4.2.21 de la carte Milvus-Helm, nous avons introduit la carte pulsar-v3.x comme dépendance. Pour une compatibilité ascendante, veuillez mettre à jour votre helm vers la version 3.14 ou une version plus récente, et assurez-vous d'ajouter l'option --reset-then-reuse-values
chaque fois que vous utilisez helm upgrade
.
Vérifier la carte Milvus Helm
Exécutez les commandes suivantes pour vérifier les nouvelles versions de Milvus.
$ helm repo update zilliztech
$ helm search repo zilliztech/milvus --versions
Le repo Milvus Helm Charts à l'adresse https://milvus-io.github.io/milvus-helm/
a été archivé et vous pouvez obtenir d'autres mises à jour à l'adresse https://zilliztech.github.io/milvus-helm/
comme suit :
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
Le répertoire archivé est toujours disponible pour les cartes jusqu'à la version 4.0.31. Pour les versions ultérieures, utilisez plutôt le nouveau 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 ...
Vous pouvez choisir le chemin de mise à niveau pour votre Milvus comme suit :
Mettre à niveau Milvus à l'aide de Helm pour une mise à niveau d'une version mineure antérieure à v2.2.3 vers v2.5.0-beta.
Migrer les métadonnées avant la mise à niveau de Milvus v2.1.x vers v2.5.0-beta.
Mise à niveau de Milvus à l'aide de Helm
Pour mettre à niveau Milvus à partir d'une version mineure antérieure à la v2.2.3 vers la dernière version, exécutez les commandes suivantes :
helm repo update zilliztech
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values --version=4.1.24 # use the helm chart version here
Utilisez la version du diagramme Helm dans la commande précédente. Pour plus d'informations sur la manière d'obtenir la version du tableau Helm, reportez-vous à la section Vérifier la version de Milvus.
Migrer les métadonnées
Depuis Milvus 2.2.0, les métadonnées sont incompatibles avec celles des versions précédentes. Les exemples suivants supposent une mise à niveau de Milvus 2.1.4 vers Milvus 2.2.0.
1. Vérifier la version de Milvus
Exécutez $ helm list
pour vérifier la version de votre application Milvus. Vous pouvez voir que APP VERSION
est 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. Vérifier les pods en cours d'exécution
Exécutez $ kubectl get pods
pour vérifier les pods en cours d'exécution. Vous pouvez voir la sortie suivante.
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. Vérifier la balise image
Vérifiez la balise d'image pour le pod my-release-milvus-proxy-6c548f787f-scspp
. Vous pouvez voir que la version de votre cluster Milvus est v2.1.4.
$ kubectl get pods my-release-milvus-proxy-6c548f787f-scspp -o=jsonpath='{$.spec.containers[0].image}'
# milvusdb/milvus:v2.1.4
4. Migrer les métadonnées
Un changement majeur dans Milvus 2.2 est la structure des métadonnées des index de segments. Par conséquent, vous devez utiliser Helm pour migrer les métadonnées lors de la mise à niveau de Milvus de la version 2.1.x à la version 2.2.0. Voici un script qui vous permettra de migrer vos métadonnées en toute sécurité.
Ce script ne s'applique qu'à Milvus installé sur un cluster K8s. Revenez d'abord à la version précédente à l'aide de l'opération de retour en arrière si une erreur se produit pendant le processus.
Le tableau suivant répertorie les opérations que vous pouvez effectuer pour la migration des métadonnées.
Paramètres | Description de l'opération | Valeur par défaut | Nom de l'instance Milvus |
---|---|---|---|
i | Le nom de l'instance Milvus. | None | Vrai |
n | L'espace de noms dans lequel Milvus est installé. | default | Faux |
s | La version source de Milvus. | None | Vrai |
t | La version cible de Milvus. | None | Vrai |
r | Le chemin racine de Milvus meta. | by-dev | Faux |
w | La nouvelle balise image de Milvus. | milvusdb/milvus:v2.2.0 | Faux |
m | La balise meta de l'image de migration. | milvusdb/meta-migration:v2.2.0 | Faux |
o | L'opération de méta-migration. | migrate | Faux |
d | S'il faut supprimer le pod de migration une fois la migration terminée. | false | Faux |
c | La classe de stockage pour le pvc de métamigration. | default storage class | Faux |
e | Le point d'entrée etcd utilisé par milvus. | etcd svc installed with milvus | Faux |
1. Migrer les métadonnées
- Télécharger le script de migration.
- Arrêter les composants Milvus. Toute session en direct dans le Milvus etcd peut entraîner un échec de la migration.
- Créer une sauvegarde des métadonnées Milvus.
- Migrer les métadonnées Milvus.
- Démarrer les composants Milvus avec une nouvelle image.
2. Mise à niveau de Milvus de la version 2.1.x à la version 2.2.0
Les commandes suivantes supposent que vous mettez à niveau Milvus de la version 2.1.4 à la version 2.2.0. Modifiez-les pour obtenir les versions qui répondent à vos besoins.
Spécifier le nom de l'instance Milvus, la version source de Milvus et la version cible de Milvus.
./migrate.sh -i my-release -s 2.1.4 -t 2.2.0
Spécifiez l'espace de noms avec
-n
si votre Milvus n'est pas installé dans l'espace de noms K8s par défaut../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0
Spécifiez le chemin d'accès à la racine avec
-r
si votre Milvus est installé avec le chemin d'accès personnalisérootpath
../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
Spécifier la balise d'image avec
-w
si votre Milvus est installé avec une balise personnaliséeimage
../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -w milvusdb/milvus:v2.2.0
Définissez
-d true
si vous souhaitez supprimer automatiquement le pod de migration une fois la migration terminée../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -w milvusdb/milvus:v2.2.0 -d true
Revenir en arrière et migrer à nouveau si la migration échoue.
./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