milvus-logo
LFAI
Home
  • Guide d'administration
    • Mise à niveau

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 :

- [Effectuer une mise à niveau continue](#conduct-a-rolling-upgrade) de Milvus v2.2.3 et versions ultérieures vers v2.5.0-beta.

Effectuer une mise à niveau continue

Depuis Milvus 2.2.3, vous pouvez configurer les coordinateurs Milvus pour qu'ils fonctionnent en mode actif-veille et activer la fonction de mise à niveau continue pour eux, afin que Milvus puisse répondre aux demandes entrantes pendant les mises à niveau des coordinateurs. Dans les versions précédentes, les coordinateurs doivent être supprimés puis créés lors d'une mise à niveau, ce qui peut entraîner certains temps d'arrêt du service.

Les mises à niveau en continu exigent que les coordinateurs fonctionnent en mode actif-veille. Vous pouvez utiliser le script que nous fournissons pour configurer les coordinateurs afin qu'ils travaillent en mode veille active et lancer la mise à jour continue.

Basé sur les capacités de mise à jour continue fournies par Kubernetes, le script ci-dessus applique une mise à jour ordonnée des déploiements en fonction de leurs dépendances. En outre, Milvus met en œuvre un mécanisme garantissant que ses composants restent compatibles avec ceux qui en dépendent pendant la mise à niveau, ce qui réduit considérablement les temps d'arrêt potentiels des services.

Le script s'applique uniquement à la mise à niveau de Milvus installé avec Helm. Le tableau suivant répertorie les drapeaux de commande disponibles dans les scripts.

ParamètresDescription de la commandeValeur par défautRequis
iNom de l'instance MilvusNoneVrai
nEspace de noms dans lequel Milvus est installédefaultFaux
tVersion cible de MilvusNoneVrai
wNouvelle balise d'image Milvusmilvusdb/milvus:v2.2.3Vrai
oFonctionnementupdateFaux

Une fois que vous vous êtes assuré que tous les déploiements de votre instance Milvus sont dans leur état normal. Vous pouvez exécuter la commande suivante pour mettre à niveau l'instance Milvus vers 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. Le script code en dur l'ordre de mise à niveau des déploiements et ne peut pas être modifié.
  2. Le script utilise kubectl patch pour mettre à jour les déploiements et kubectl rollout status pour surveiller leur état.
  3. Le script utilise kubectl patch pour mettre à jour l'étiquette app.kubernetes.io/version des déploiements avec celle spécifiée après l'indicateur -t dans la commande.

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ètresDescription de l'opérationValeur par défautNom de l'instance Milvus
iLe nom de l'instance Milvus.NoneVrai
nL'espace de noms dans lequel Milvus est installé.defaultFaux
sLa version source de Milvus.NoneVrai
tLa version cible de Milvus.NoneVrai
rLe chemin racine de Milvus meta.by-devFaux
wLa nouvelle balise image de Milvus.milvusdb/milvus:v2.2.0Faux
mLa balise meta de l'image de migration.milvusdb/meta-migration:v2.2.0Faux
oL'opération de méta-migration.migrateFaux
dS'il faut supprimer le pod de migration une fois la migration terminée.falseFaux
cLa classe de stockage pour le pvc de métamigration.default storage classFaux
eLe point d'entrée etcd utilisé par milvus.etcd svc installed with milvusFaux

1. Migrer les métadonnées

  1. Télécharger le script de migration.
  2. Arrêter les composants Milvus. Toute session en direct dans le Milvus etcd peut entraîner un échec de la migration.
  3. Créer une sauvegarde des métadonnées Milvus.
  4. Migrer les métadonnées Milvus.
  5. 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.

  1. 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
    
  2. 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
    
  3. 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
    
  4. Spécifier la balise d'image avec -w si votre Milvus est installé avec une balise personnalisée image.

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

Traduit parDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?