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
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.
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
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?
Wenn Sie lernen möchten, wie Sie die Milvus-Dienste überwachen und Warnungen erstellen können:
Wenn Sie bereit sind, Ihren Cluster in der Cloud einzusetzen:
- Lernen Sie, wie Sie Milvus auf Amazon EKS mit Terraform bereitstellen können
- Lernen Sie, wie Sie Milvus Cluster auf GCP mit Kubernetes bereitstellen können
- Erfahren Sie, wie Sie Milvus auf Microsoft Azure mit Kubernetes bereitstellen können
Wenn Sie nach einer Anleitung für die Ressourcenzuweisung suchen: