milvus-logo
LFAI
Home
  • Leitfaden für die Verwaltung
    • Upgrade

Upgrade von Milvus Standalone mit Helm Chart

Diese Anleitung beschreibt, wie Sie Ihr Milvus Standalone mit Milvus Helm Charts aufrüsten.

Voraussetzungen

  • Helm-Version >= 3.14.0
  • Kubernetes-Version >= 1.20.0

Seit Milvus-Helm Chart Version 4.2.21 haben wir pulsar-v3.x Chart als Abhängigkeit eingeführt. Aus Gründen der Abwärtskompatibilität aktualisieren Sie bitte Ihren Helm auf v3.14 oder eine neuere Version und fügen Sie unbedingt die Option --reset-then-reuse-values hinzu, wenn Sie helm upgrade verwenden.

Prüfen Sie die Milvus-Version

Führen Sie die folgenden Befehle aus, um neue Milvus-Versionen zu überprüfen.

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

Das Milvus Helm Charts Repo unter https://milvus-io.github.io/milvus-helm/ wurde archiviert und Sie können weitere Updates von https://zilliztech.github.io/milvus-helm/ wie folgt erhalten:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update zilliztech
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values

Das archivierte Repo ist immer noch für die Charts bis 4.0.31 verfügbar. Für spätere Versionen verwenden Sie stattdessen das neue 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 ...

Sie können den Upgrade-Pfad für Ihren Milvus wie folgt wählen:

- [Führen Sie ein rollendes Upgrade durch](#conduct-a-rolling-upgrade) von Milvus v2.2.3 und späteren Versionen auf v2.5.0-beta.

Durchführen eines rollenden Upgrades

Seit Milvus 2.2.3 können Sie Milvus-Koordinatoren so konfigurieren, dass sie im Aktiv-Standby-Modus arbeiten, und die Funktion "Rolling Upgrade" für sie aktivieren, so dass Milvus auf eingehende Anfragen während der Koordinator-Upgrades reagieren kann. In früheren Versionen müssen die Koordinatoren während eines Upgrades entfernt und neu erstellt werden, was zu einer gewissen Ausfallzeit des Dienstes führen kann.

Rolling Upgrades erfordern, dass die Koordinatoren im Aktiv-Standby-Modus arbeiten. Sie können das von uns bereitgestellte Skript verwenden, um die Koordinatoren so zu konfigurieren, dass sie im aktiven Standby-Modus arbeiten, und das Rolling Upgrade starten.

Auf der Grundlage der von Kubernetes bereitgestellten rollenden Aktualisierungsfunktionen erzwingt das oben genannte Skript eine geordnete Aktualisierung der Bereitstellungen entsprechend ihrer Abhängigkeiten. Darüber hinaus implementiert Milvus einen Mechanismus, der sicherstellt, dass seine Komponenten während des Upgrades mit den von ihnen abhängigen Komponenten kompatibel bleiben, wodurch potenzielle Service-Ausfallzeiten erheblich reduziert werden.

Das Skript gilt nur für das Upgrade von Milvus, das mit Helm installiert wurde. In der folgenden Tabelle sind die in den Skripten verfügbaren Befehlsflags aufgeführt.

ParameterBeschreibungStandardwertErforderlich
iMilvus-InstanznameNoneTrue
nNamespace, in dem Milvus installiert istdefaultFalsch
tZiel-Milvus-VersionNoneWahr
wNeues Milvus-Bild-Tagmilvusdb/milvus:v2.2.3Wahr
oVorgangupdateFalsch

Sobald Sie sichergestellt haben, dass sich alle Einsätze in Ihrer Milvus-Instanz in ihrem normalen Status befinden, können Sie den folgenden Befehl ausführen, um die Milvus-Instanz auf 2.5.0-beta zu aktualisieren. Sie können den folgenden Befehl ausführen, um die Milvus-Instanz auf 2.5.0-beta zu aktualisieren.

sh rollingUpdate.sh -n default -i my-release -o update -t 2.5.0-beta -w 'milvusdb/milvus:v2.5.0-beta'
  1. Das Skript gilt nicht für die mit RocksMQ installierte Milvus-Instanz.
  2. Das Skript kodiert die Upgrade-Reihenfolge der Bereitstellungen fest und kann nicht geändert werden.
  3. Das Skript verwendet kubectl patch, um die Bereitstellungen zu aktualisieren, und kubectl rollout status, um ihren Status zu überwachen.
  4. Das Skript verwendet kubectl patch, um die Bezeichnung app.kubernetes.io/version der Bereitstellungen auf die Bezeichnung zu aktualisieren, die nach dem Flag -t im Befehl angegeben ist.

Upgrade von Milvus mit Helm

Um Milvus von einer Nebenversion vor v2.2.3 auf die neueste Version zu aktualisieren, führen Sie die folgenden Befehle aus:

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

Verwenden Sie die Helm-Diagrammversion im vorangegangenen Befehl. Einzelheiten dazu, wie Sie die Helm-Chart-Version erhalten, finden Sie unter Prüfen der Milvus-Version.

Migrieren Sie die Metadaten

Seit Milvus 2.2.0 sind die Metadaten nicht mehr mit denen früherer Versionen kompatibel. Die folgenden Beispielausschnitte gehen von einem Upgrade von Milvus 2.1.4 auf Milvus 2.2.0 aus.

1. Prüfen Sie die Milvus-Version

Führen Sie $ helm list aus, um die Version Ihrer Milvus-Anwendung zu überprüfen. Sie können sehen, dass APP VERSION 2.1.4 ist.

NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION     
my-release          default     1           2022-11-21 15:41:25.51539 +0800 CST     deployed    milvus-3.2.18   2.1.4

2. Prüfen Sie die laufenden Pods

Führen Sie $ kubectl get pods aus, um die laufenden Pods zu überprüfen. Sie können die folgende Ausgabe sehen.

NAME                                            READY   STATUS    RESTARTS   AGE
my-release-etcd-0                               1/1     Running   0          84s
my-release-milvus-standalone-75c599fffc-6rwlj   1/1     Running   0          84s
my-release-minio-744dd9586f-qngzv               1/1     Running   0          84s

3. Überprüfen Sie das Image-Tag

Überprüfen Sie das Image-Tag für den Pod my-release-milvus-proxy-6c548f787f-scspp. Sie können sehen, dass die Version Ihres Milvus-Clusters v2.1.4 ist.

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

4. Migrieren Sie die Metadaten

Eine wichtige Änderung in Milvus 2.2 ist die Metadatenstruktur der Segmentindizes. Daher müssen Sie Helm verwenden, um die Metadaten beim Upgrade von Milvus von v2.1.x auf v2.2.0 zu migrieren. Hier finden Sie ein Skript, mit dem Sie Ihre Metadaten sicher migrieren können.

Dieses Skript gilt nur für Milvus, das auf einem K8s-Cluster installiert ist. Wenn während des Prozesses ein Fehler auftritt, sollten Sie zunächst mit der Rollback-Operation auf die vorherige Version zurückkehren.

In der folgenden Tabelle sind die Operationen aufgeführt, die Sie für die Metamigration durchführen können.

ParameterBeschreibungStandardwertErforderlich
iDer Name der Milvus-Instanz.NoneTrue
nDer Namespace, in dem Milvus installiert ist.defaultFalsch
sDie Quellversion von Milvus.NoneTrue
tDie Zielversion von Milvus.NoneWahr
rDer Wurzelpfad von Milvus meta.by-devFalse
wDas neue Milvus-Bild-Tag.milvusdb/milvus:v2.2.0False
mDas Meta-Migrationsbild-Tag.milvusdb/meta-migration:v2.2.0False
oDer Meta-Migrationsvorgang.migrateFalse
dOb der Migrations-Pod nach Abschluss der Migration gelöscht werden soll.falseFalse
cDie Speicherklasse für die Metamigration pvc.default storage classFalse
eDer von milvus verwendete etcd enpoint.etcd svc installed with milvusFalse

1. Migrieren Sie die Metadaten

  1. Laden Sie das Migrationsskript herunter.
  2. Stoppen Sie die Milvus-Komponenten. Jede Live-Sitzung im Milvus etcd kann einen Migrationsfehler verursachen.
  3. Erstellen Sie ein Backup für die Milvus-Metadaten.
  4. Migrieren Sie die Milvus-Metadaten.
  5. Starten Sie die Milvus-Komponenten mit einem neuen Image.

2. Upgrade von Milvus von v2.1.x auf 2.5.0-beta

Die folgenden Befehle gehen davon aus, dass Sie Milvus von v2.1.4 auf 2.5.0-beta aktualisieren. Ändern Sie sie auf die Versionen, die Ihren Bedürfnissen entsprechen.

  1. Geben Sie den Namen der Milvus-Instanz, die Quell-Milvus-Version und die Ziel-Milvus-Version an.

    ./migrate.sh -i my-release -s 2.1.4 -t 2.5.0-beta
    
  2. Geben Sie den Namespace mit -n an, wenn Ihr Milvus nicht im Standard-Namespace von K8s installiert ist.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta
    
  3. Geben Sie den Wurzelpfad mit -r an, wenn Ihr Milvus mit dem benutzerdefinierten rootpath installiert ist.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev
    
  4. Geben Sie das Bild-Tag mit -w an, wenn Ihr Milvus mit einem benutzerdefinierten image installiert ist.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -w milvusdb/milvus:v2.5.0-beta
    
  5. Legen Sie -d true fest, wenn Sie den Migrations-Pod automatisch entfernen möchten, nachdem die Migration abgeschlossen ist.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -w milvusdb/milvus:v2.5.0-beta -d true
    
  6. Machen Sie einen Rollback und migrieren Sie erneut, wenn die Migration fehlschlägt.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -o rollback -w milvusdb/milvus:v2.1.1
    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -o migrate -w milvusdb/milvus:v2.5.0-beta
    

Übersetzt vonDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?