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

Skalierung eines Milvus-Clusters

Milvus unterstützt die horizontale Skalierung seiner Komponenten. Das bedeutet, dass Sie die Anzahl der Arbeitsknoten jedes Typs je nach Bedarf entweder erhöhen oder verringern können.

Dieses Thema beschreibt, wie Sie einen Milvus-Cluster skalieren können. Wir gehen davon aus, dass Sie vor der Skalierung bereits einen Milvus-Cluster installiert haben. Außerdem empfehlen wir Ihnen, sich mit der Milvus-Architektur vertraut zu machen, bevor Sie beginnen.

In diesem Tutorial wird die Skalierung von drei Abfrageknoten als Beispiel verwendet. Um andere Knotentypen zu skalieren, ersetzen Sie queryNode durch den entsprechenden Knotentyp in der Befehlszeile.

Informationen über die Skalierung eines Clusters mit Milvus Operator finden Sie unter Skalierung eines Clusters mit Milvus Operator.

Was ist horizontale Skalierung?

Die horizontale Skalierung umfasst die Skalierung nach außen und die Skalierung nach innen.

Skalierung nach außen

Unter Skalierung nach außen versteht man die Erhöhung der Anzahl der Knoten in einem Cluster. Anders als bei der Skalierung nach oben müssen Sie bei der Skalierung nach außen nicht einem Knoten im Cluster mehr Ressourcen zuweisen. Stattdessen wird der Cluster durch das Hinzufügen weiterer Knoten horizontal erweitert.

Scaleout Scaleout

Scaleup Hochskalieren

Gemäß der Milvus-Architektur umfassen die zustandslosen Arbeitsknoten Abfrageknoten, Datenknoten, Indexknoten und Proxy. Daher können Sie diese Art von Knoten entsprechend Ihren Geschäftsanforderungen und Anwendungsszenarien ausbauen. Sie können den Milvus-Cluster entweder manuell oder automatisch skalieren.

Im Allgemeinen müssen Sie den Milvus-Cluster, den Sie erstellt haben, skalieren, wenn er übermäßig ausgelastet ist. Nachfolgend sind einige typische Situationen aufgeführt, in denen Sie den Milvus-Cluster ausbauen müssen:

  • Die CPU- und Speicherauslastung ist über einen bestimmten Zeitraum hinweg hoch.
  • Der Abfragedurchsatz wird höher.
  • Eine höhere Geschwindigkeit für die Indizierung ist erforderlich.
  • Massive Mengen an großen Datensätzen müssen verarbeitet werden.
  • Eine hohe Verfügbarkeit des Milvus-Dienstes muss gewährleistet sein.

Skalierung nach innen

Unter Skalierung versteht man die Verringerung der Anzahl der Knoten in einem Cluster. Im Allgemeinen müssen Sie den von Ihnen erstellten Milvus-Cluster skalieren, wenn er nicht ausgelastet ist. Im Folgenden sind einige typische Situationen aufgeführt, in denen Sie den Milvus-Cluster skalieren müssen:

  • Die CPU- und Speicherauslastung ist über einen bestimmten Zeitraum hinweg niedrig.
  • Der Abfragedurchsatz wird geringer.
  • Eine höhere Geschwindigkeit für die Indizierung ist nicht erforderlich.
  • Die Größe des zu verarbeitenden Datensatzes ist gering.
Es wird nicht empfohlen, die Anzahl der Worker-Knoten drastisch zu reduzieren. Wenn beispielsweise fünf Datenknoten im Cluster vorhanden sind, empfehlen wir, jeweils einen Datenknoten zu reduzieren, um die Verfügbarkeit des Dienstes sicherzustellen. Wenn der Dienst nach dem ersten Versuch der Skalierung verfügbar ist, können Sie die Anzahl der Datenknoten weiter reduzieren.

Voraussetzungen

Führen Sie kubectl get pods aus, um eine Liste der Komponenten und ihres Arbeitsstatus in dem von Ihnen erstellten Milvus-Cluster zu erhalten.

NAME                                            READY   STATUS       RESTARTS   AGE
my-release-etcd-0                               1/1     Running      0          1m
my-release-milvus-datacoord-7b5d84d8c6-rzjml    1/1     Running      0          1m
my-release-milvus-datanode-665d4586b9-525pm     1/1     Running      0          1m
my-release-milvus-indexcoord-9669d5989-kr5cm    1/1     Running      0          1m
my-release-milvus-indexnode-b89cc5756-xbpbn     1/1     Running      0          1m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d        1/1     Running      0          1m
my-release-milvus-pulsar-6b9754c64d-4tg4m       1/1     Running      0          1m
my-release-milvus-querycoord-75f6c789f8-j28bg   1/1     Running      0          1m
my-release-milvus-querynode-7c7779c6f8-pnjzh    1/1     Running      0          1m
my-release-milvus-rootcoord-75585dc57b-cjh87    1/1     Running      0          1m
my-release-minio-5564fbbddc-9sbgv               1/1     Running      0          1m 
Milvus unterstützt nur das Hinzufügen der Worker Nodes, nicht aber das Hinzufügen der Coordinator-Komponenten.

Skalieren eines Milvus-Clusters

Sie können Ihren Milvus-Cluster entweder manuell oder automatisch skalieren. Wenn die automatische Skalierung aktiviert ist, wird der Milvus-Cluster automatisch verkleinert oder vergrößert, wenn der Verbrauch von CPU- und Speicherressourcen den von Ihnen festgelegten Wert erreicht.

Derzeit unterstützt Milvus 2.1.0 nur die manuelle Ein- und Auslagerung.

Verkleinern

Führen Sie helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values aus, um den Abfrageknoten manuell zu verkleinern.

Wenn dies erfolgreich ist, werden drei laufende Pods auf dem Abfrageknoten hinzugefügt, wie im folgenden Beispiel gezeigt.

NAME                                            READY   STATUS    RESTARTS   AGE
my-release-etcd-0                               1/1     Running   0          2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml    1/1     Running   0          2m
my-release-milvus-datanode-665d4586b9-525pm     1/1     Running   0          2m
my-release-milvus-indexcoord-9669d5989-kr5cm    1/1     Running   0          2m
my-release-milvus-indexnode-b89cc5756-xbpbn     1/1     Running   0          2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d        1/1     Running   0          2m
my-release-milvus-pulsar-6b9754c64d-4tg4m       1/1     Running   0          2m
my-release-milvus-querycoord-75f6c789f8-j28bg   1/1     Running   0          2m
my-release-milvus-querynode-7c7779c6f8-czq9f    1/1     Running   0          5s
my-release-milvus-querynode-7c7779c6f8-jcdcn    1/1     Running   0          5s
my-release-milvus-querynode-7c7779c6f8-pnjzh    1/1     Running   0          2m
my-release-milvus-rootcoord-75585dc57b-cjh87    1/1     Running   0          2m
my-release-minio-5564fbbddc-9sbgv               1/1     Running   0          2m

Skalierung nach innen

Führen Sie helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values aus, um den Abfrageknoten zu vergrößern.

Bei Erfolg werden drei laufende Pods auf dem Abfrageknoten auf einen reduziert, wie im folgenden Beispiel dargestellt.

NAME                                            READY   STATUS    RESTARTS   AGE
my-release-etcd-0                               1/1     Running   0          2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml    1/1     Running   0          2m
my-release-milvus-datanode-665d4586b9-525pm     1/1     Running   0          2m
my-release-milvus-indexcoord-9669d5989-kr5cm    1/1     Running   0          2m
my-release-milvus-indexnode-b89cc5756-xbpbn     1/1     Running   0          2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d        1/1     Running   0          2m
my-release-milvus-pulsar-6b9754c64d-4tg4m       1/1     Running   0          2m
my-release-milvus-querycoord-75f6c789f8-j28bg   1/1     Running   0          2m
my-release-milvus-querynode-7c7779c6f8-pnjzh    1/1     Running   0          2m
my-release-milvus-rootcoord-75585dc57b-cjh87    1/1     Running   0          2m
my-release-minio-5564fbbddc-9sbgv               1/1     Running   0          2m

Wie geht es weiter?

Übersetzt vonDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?