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

Milvus-Cluster mit Helm-Diagramm aufrüsten

Diese Anleitung beschreibt, wie Sie Ihren Milvus-Cluster 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. Um die Abwärtskompatibilität zu gewährleisten, aktualisieren Sie bitte Ihren Helm auf v3.14 oder eine neuere Version und fügen Sie die Option --reset-then-reuse-values hinzu, wenn Sie helm upgrade verwenden.

Überprüfen der Milvus Helm-Karte

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

$ helm repo update zilliztech
$ 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
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values

Das archivierte Repo ist weiterhin für die Diagramme 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 kodiert die Upgrade-Reihenfolge der Einsätze fest und kann nicht geändert werden.
  2. Das Skript verwendet kubectl patch, um die Einsätze zu aktualisieren, und kubectl rollout status, um ihren Status zu überwachen.
  3. Das Skript verwendet kubectl patch, um die Bezeichnung app.kubernetes.io/version der Einsätze auf die Bezeichnung zu aktualisieren, die hinter 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 zilliztech
helm upgrade my-release zilliztech/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    
new-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          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. Ü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.2.0

Die folgenden Befehle gehen davon aus, dass Sie Milvus von v2.1.4 auf 2.2.0 aktualisieren. Ändern Sie sie auf die Versionen, die Ihren Anforderungen 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.2.0
    
  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.2.0
    
  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.2.0 -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.2.0 -r by-dev -w milvusdb/milvus:v2.2.0
    
  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.2.0 -w milvusdb/milvus:v2.2.0 -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.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
    

Ü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?