Mise à niveau du cluster Milvus à l'aide d'un Helm Chart
Ce guide décrit comment mettre à niveau votre cluster Milvus 2.6.x vers la version 3.0.0 à l'aide de Helm.
Cette procédure a été validée pour une mise à niveau de Milvus 2.6.20 vers Milvus v3.0.0 avec le Helm Chart Milvus 5.0.22. Si vous utilisez une autre version de Milvus 2.6.x ou une autre version du Helm Chart, testez d’abord la mise à niveau dans un environnement hors production.
Prérequis
- Helm 3.14.0 ou version ultérieure
- Un déploiement Milvus 2.6.x existant géré par Helm
- Les valeurs Helm utilisées pour le déploiement existant
- Une sauvegarde récente des métadonnées et des données persistantes de Milvus
Limitations relatives à la file d’attente de messages: lors de la mise à niveau vers Milvus v3.0.0, vous devez conserver votre choix actuel de file d’attente de messages. Le passage d’un système de file d’attente de messages à un autre pendant la mise à niveau n’est pas pris en charge. La prise en charge du changement de système de file d’attente de messages sera disponible dans les versions futures.
Ne modifiez pas et ne rétrogradez pas le Helm Chart dans le cadre de cette procédure. Conservez la version du Chart déjà installée pour votre version Helm. La configuration de référence testée a conservé le Helm Chart 5.0.22 et n’a modifié que le tag de l’image Milvus pour le remplacer par v3.0.0.
Cette procédure ne valide pas de retour à une version antérieure ni de restauration consistant à ramener l’image Milvus à la version 2.6.x. Une fois que la version 3.0.0 a écrit des données, une restauration portant uniquement sur l’image peut ne pas parvenir à lire l’état mis à jour. Si la mise à niveau échoue, arrêtez les écritures et utilisez un plan de reprise qui restaure les métadonnées antérieures à la mise à niveau ainsi que les sauvegardes des données persistantes. Validez d’abord le plan de reprise dans un environnement hors production.
Processus de mise à niveau
Le déploiement validé de Milvus 2.6.20 créé avec Helm Chart 5.0.22 utilisait MixCoord et StreamingNode et n’exécutait pas IndexNode. Vous n’avez pas besoin d’une étape distincte de migration du coordinateur lorsque votre déploiement utilise la même topologie.
Étape 1 : Vérification de la topologie actuelle
Enregistrez l’ensemble des valeurs de la version actuelle et vérifiez les pods en cours d’exécution :
helm get values <release-name> \
--namespace <namespace> \
--all > milvus-values-before-upgrade.yaml
kubectl get pods --namespace <namespace>
Vérifiez que le cluster utilise MixCoord et StreamingNode et qu’aucun pod IndexNode n’est en cours d’exécution. La commande de mise à niveau décrite plus loin dans ce guide conserve les valeurs Helm existantes. Si vos valeurs actuelles activent IndexNode ou utilisent une autre topologie de composants, n’effectuez pas cette mise à niveau « image seule ». Reproduisez d’abord la topologie dans un environnement hors production et obtenez un plan de migration approuvé par l’équipe d’ingénierie.
Étape 2 : Mettre à jour le référentiel Helm
Ajoutez ou mettez à jour le référentiel Helm de Milvus :
helm repo add zilliztech https://zilliztech.github.io/milvus-helm --force-update
helm repo update zilliztech
https://milvus-io.github.io/milvus-helm/ a été archivé. Utilisez le nouveau référentiel https://zilliztech.github.io/milvus-helm/ pour les versions 4.0.31 et ultérieures des charts.
Étape 3 : Mettre à niveau Milvus
Vérifiez la version du chart installée pour votre version Helm :
helm list --namespace <namespace>
Dans la colonne « CHART », supprimez le préfixe « milvus- » de la valeur et utilisez la version restante sous la forme « <current-chart-version> ». Exécutez ensuite la commande de mise à niveau :
helm upgrade <release-name> zilliztech/milvus \
--namespace <namespace> \
--version <current-chart-version> \
--set image.all.tag="v3.0.0" \
--reset-then-reuse-values \
--wait \
--timeout 30m
L’option ` --reset-then-reuse-values ` conserve les valeurs de la version précédente tout en appliquant la substitution explicite d’image par rapport aux valeurs par défaut du Chart sélectionné.
Vérifiez la mise à niveau
Vérifiez la révision Helm, l’état des pods et les images de conteneurs :
helm history <release-name> --namespace <namespace>
kubectl get pods --namespace <namespace>
kubectl get pods --namespace <namespace> \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'
Vérifiez que toutes les charges de travail requises sont prêtes, que tous les composants Milvus utilisent v3.0.0 et que vos collections existantes restent consultables et recherchables. Effectuez ces vérifications avant d’activer toute fonctionnalité spécifique à la version 3.0.0.
La mise à niveau vers Milvus 3.0 n’active pas Storage V3. Après avoir vérifié la mise à niveau, consultez la documentation relative à Storage V3 avant d’activer les fonctionnalités qui en dépendent. Une fois que Milvus a écrit des données Storage V3, la rétrogradation vers une version antérieure de Milvus incapable de lire Storage V3 n’est pas prise en charge.