Milvus in Kubernetes mit Helm starten
Diese Seite veranschaulicht, wie man eine Milvus-Instanz in Kubernetes mithilfe von Milvus Helm-Diagrammen startet.
Übersicht
Helm verwendet ein Paketierungsformat namens Charts. Ein Diagramm ist eine Sammlung von Dateien, die einen zusammenhängenden Satz von Kubernetes-Ressourcen beschreiben. Milvus bietet eine Reihe von Diagrammen, die Sie bei der Bereitstellung von Milvus-Abhängigkeiten und -Komponenten unterstützen.
Voraussetzungen
Installieren Sie eine StorageClass. Sie können die installierte StorageClass wie folgt überprüfen.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate falseÜberprüfen Sie vor der Installation die Hardware- und Software-Anforderungen.
Es wird empfohlen, vor der Installation von Milvus das Milvus Sizing Tool zu verwenden, um die Hardware-Anforderungen auf der Grundlage Ihrer Datengröße abzuschätzen. Dies hilft, eine optimale Leistung und Ressourcenzuweisung für Ihre Milvus-Installation zu gewährleisten.
Sollten Sie beim Ziehen des Images auf Probleme stoßen, wenden Sie sich bitte an community@zilliz.com und schildern Sie das Problem, damit wir Ihnen die notwendige Unterstützung bieten können.
Milvus Helm Chart installieren
Bevor Sie Milvus Helm Charts installieren, müssen Sie das Milvus Helm Repository hinzufügen.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
Das Milvus Helm Charts-Repository unter https://github.com/milvus-io/milvus-helm wurde archiviert. Wir verwenden jetzt das neue Repository unter https://github.com/zilliztech/milvus-helm. Das archivierte Repository ist immer noch für Diagramme bis 4.0.31 verfügbar, aber verwenden Sie das neue Repository für spätere Versionen.
Holen Sie dann Milvus-Diagramme wie folgt aus dem Repository:
$ helm repo update
Sie können diesen Befehl jederzeit ausführen, um die neuesten Milvus Helm-Diagramme abzurufen.
Online-Installation
1. Bereitstellen eines Milvus-Clusters
Sobald Sie das Helm-Diagramm installiert haben, können Sie Milvus auf Kubernetes starten. Dieser Abschnitt führt Sie durch die Bereitstellung eines Milvus-Clusters.
Benötigen Sie stattdessen eine eigenständige Bereitstellung?
Wenn Sie Milvus lieber im Standalone-Modus (einzelner Knoten) für die Entwicklung oder für Tests einsetzen möchten, verwenden Sie diesen Befehl:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.14 \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
Hinweis: Der Standalone-Modus verwendet Woodpecker als Standard-Nachrichtenwarteschlange und aktiviert die Komponente Streaming Node. Weitere Informationen finden Sie in der Architekturübersicht und unter Verwendung von Woodpecker.
Milvus-Cluster bereitstellen:
Mit dem folgenden Befehl wird ein Milvus-Cluster mit optimierten Einstellungen für v2.6.14 bereitgestellt, wobei Woodpecker als empfohlene Nachrichtenwarteschlange verwendet wird:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.14 \
--set pulsarv3.enabled=false \
--set woodpecker.enabled=true \
--set streaming.enabled=true \
--set indexNode.enabled=false
Was dieser Befehl bewirkt:
- Verwendet Woodpecker als Nachrichtenwarteschlange (empfohlen für geringeren Wartungsaufwand)
- Aktiviert die neue Komponente Streaming Node für eine verbesserte Leistung
- Deaktiviert den alten Index-Knoten (die Funktionalität wird jetzt von Data Node übernommen)
- Deaktiviert Pulsar und verwendet stattdessen Woodpecker
Änderungen der Architektur in Milvus 2.6.x:
- Nachrichten-Warteschlange: Woodpecker wird jetzt empfohlen (reduziert die Wartung der Infrastruktur im Vergleich zu Pulsar)
- Neue Komponente: Streaming Node wurde eingeführt und ist standardmäßig aktiviert
- Verschmolzene Komponenten: Indexknoten und Datenknoten werden zu einem einzigen Datenknoten zusammengefasst
Vollständige Details zur Architektur finden Sie in der Architekturübersicht.
Alternative Nachrichtenwarteschlangen-Optionen:
Wenn Sie anstelle von Woodpecker lieber Pulsar (die traditionelle Wahl) verwenden möchten:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.14 \
--set streaming.enabled=true \
--set indexNode.enabled=false
Nächste Schritte:Der obige Befehl setzt Milvus mit den empfohlenen Konfigurationen ein. Für den produktiven Einsatz:
- Verwenden Sie das Milvus Sizing Tool, um die Einstellungen basierend auf Ihrer Datengröße zu optimieren
- Prüfen Sie die Checkliste für Milvus-Systemkonfigurationen für erweiterte Konfigurationsoptionen
Wichtige Hinweise:
- Benennung von Versionen: Verwenden Sie nur Buchstaben, Zahlen und Bindestriche (keine Punkte erlaubt)
- Kubernetes v1.25+: Wenn Sie Probleme mit PodDisruptionBudget haben, verwenden Sie diesen Workaround:
helm install my-release zilliztech/milvus \ --set pulsar.bookkeeper.pdb.usePolicy=false \ --set pulsar.broker.pdb.usePolicy=false \ --set pulsar.proxy.pdb.usePolicy=false \ --set pulsar.zookeeper.pdb.usePolicy=false
Weitere Informationen finden Sie im Milvus Helm Chart und in der Helm-Dokumentation.
2. Prüfen Sie den Status des Milvus-Clusters
Überprüfen Sie den Pod-Status, um sicherzugehen, dass Ihr Einsatz erfolgreich war:
kubectl get pods
Warten Sie, bis alle Pods den Status "Running" anzeigen. Bei der Konfiguration v2.6.14 sollten Sie Pods ähnlich wie folgt sehen:
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 3m23s
my-release-etcd-1 1/1 Running 0 3m23s
my-release-etcd-2 1/1 Running 0 3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm 1/1 Running 0 3m23s
my-release-milvus-mixcoord-7fb9488465-dmbbj 1/1 Running 0 3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv 1/1 Running 0 3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg 1/1 Running 0 3m24s
my-release-milvus-streaming-node-xxxxxxxxx 1/1 Running 0 3m24s
my-release-minio-0 1/1 Running 0 3m23s
my-release-minio-1 1/1 Running 0 3m23s
my-release-minio-2 1/1 Running 0 3m23s
my-release-minio-3 1/1 Running 0 3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc 1/1 Running 0 3m24s
my-release-pulsar-bookkeeper-0 1/1 Running 0 3m23s
my-release-pulsar-bookkeeper-1 1/1 Running 0 98s
my-release-pulsar-broker-556ff89d4c-2m29m 1/1 Running 0 3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-0 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-metadata-98zbr 0/1 Completed 0 3m24s
Zu überprüfende Schlüsselkomponenten:
- Milvus-Komponenten:
mixcoord,datanode,querynode,proxy,streaming-node - Abhängigkeiten:
etcd(Metadaten),minio(Objektspeicher),pulsar(Nachrichtenwarteschlange)
Sie können auch auf die Milvus-WebUI unter http://127.0.0.1:9091/webui/ zugreifen, sobald die Portweiterleitung eingerichtet ist (siehe nächster Schritt). Einzelheiten finden Sie unter Milvus WebUI.
3. Mit Milvus verbinden
Um eine Verbindung zu Ihrem Milvus-Cluster von außerhalb von Kubernetes herzustellen, müssen Sie eine Portweiterleitung einrichten.
Portweiterleitung einrichten:
kubectl port-forward service/my-release-milvus 27017:19530
Dieser Befehl leitet Ihren lokalen Port 27017 an den Milvus-Port 19530 weiter. Sie sollten sehen:
Forwarding from 127.0.0.1:27017 -> 19530
Verbindungsdetails:
- Lokale Verbindung:
localhost:27017 - Milvus-Standardanschluss:
19530
Optionen für die Portweiterleitung:
- Lokalen Port automatisch zuweisen: Verwenden Sie
:19530anstelle von27017:19530, um kubectl einen verfügbaren Port wählen zu lassen - Auf allen Schnittstellen lauschen: Fügen Sie
--address 0.0.0.0hinzu, um Verbindungen von anderen Rechnern zuzulassen:kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530 - Eigenständiger Einsatz: Wenn Sie den Standalone-Modus verwenden, bleibt der Name des Dienstes derselbe
Lassen Sie dieses Terminal während der Verwendung von Milvusgeöffnet. Sie können sich nun mit jedem Milvus SDK unter localhost:27017 mit Milvus verbinden.
(Optional) Milvus-Konfigurationen aktualisieren
Sie können die Konfigurationen Ihres Milvus-Clusters aktualisieren, indem Sie die Datei values.yaml bearbeiten und erneut anwenden.
Erstellen Sie eine
values.yamlDatei mit den gewünschten Konfigurationen.Im Folgenden wird davon ausgegangen, dass Sie
proxy.httpaktivieren möchten.extraConfigFiles: user.yaml: |+ proxy: http: enabled: trueDie zutreffenden Konfigurationselemente finden Sie unter Systemkonfiguration.
Wenden Sie die Datei
values.yamlan.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
Überprüfen Sie die aktualisierten Konfigurationen.
helm get values my-releaseDie Ausgabe sollte die aktualisierten Konfigurationen anzeigen.
Zugriff auf Milvus WebUI
Milvus wird mit einem integrierten GUI-Tool namens Milvus WebUI geliefert, auf das Sie über Ihren Browser zugreifen können. Milvus Web UI verbessert die Beobachtbarkeit des Systems durch eine einfache und intuitive Schnittstelle. Sie können Milvus Web UI verwenden, um die Statistiken und Metriken der Komponenten und Abhängigkeiten von Milvus zu beobachten, Datenbank- und Sammlungsdetails zu überprüfen und detaillierte Milvus-Konfigurationen aufzulisten. Für Details über Milvus Web UI, siehe Milvus WebUI
Um den Zugriff auf die Milvus Web UI zu ermöglichen, müssen Sie den Proxy-Pod auf einen lokalen Port weiterleiten.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091
Nun können Sie auf die Milvus Web UI unter http://localhost:27018 zugreifen.
Offline-Installation
Wenn Sie sich in einer Umgebung mit Netzwerkbeschränkungen befinden, befolgen Sie das Verfahren in diesem Abschnitt, um einen Milvus-Cluster zu starten.
1. Milvus-Manifest abrufen
Führen Sie den folgenden Befehl aus, um das Milvus-Manifest abzurufen.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
Der obige Befehl rendert Diagrammvorlagen für einen Milvus-Cluster und speichert die Ausgabe in einer Manifestdatei namens milvus_manifest.yaml. Mit diesem Manifest können Sie einen Milvus-Cluster mit seinen Komponenten und Abhängigkeiten in separaten Pods installieren.
- Um eine Milvus-Instanz im Standalone-Modus zu installieren, bei dem alle Milvus-Komponenten in einem einzigen Pod enthalten sind, sollten Sie stattdessen
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false zilliztech/milvus > milvus_manifest.yamlausführen, um Diagrammvorlagen für eine Milvus-Instanz im Standalone-Modus zu rendern. - Um Milvus-Konfigurationen zu ändern, laden Sie die
value.yamlVorlage herunter, fügen Sie die gewünschten Einstellungen hinzu, und verwenden Siehelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yaml, um das Manifest entsprechend zu rendern.
2. Download des Image-Pulling-Skripts
Das Image-Pulling-Skript ist in Python entwickelt. Sie sollten das Skript zusammen mit seinen Abhängigkeiten in der Datei requirement.txt herunterladen.
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py
3. Bilder abrufen und speichern
Führen Sie den folgenden Befehl aus, um die benötigten Bilder zu laden und zu speichern.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
Die Bilder werden in einem Unterordner namens images im aktuellen Verzeichnis gespeichert.
4. Bilder laden
Sie können nun die Bilder wie folgt auf die Hosts in der netzbeschränkten Umgebung laden:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. Milvus bereitstellen
$ kubectl apply -f milvus_manifest.yaml
Bis zu diesem Zeitpunkt können Sie die Schritte 2 und 3 der Online-Installation ausführen, um den Cluster-Status zu überprüfen und einen lokalen Port an Milvus weiterzuleiten.
Upgrade des laufenden Milvus-Clusters
Führen Sie den folgenden Befehl aus, um Ihren laufenden Milvus-Cluster auf die neueste Version zu aktualisieren:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Milvus deinstallieren
Führen Sie den folgenden Befehl aus, um Milvus zu deinstallieren.
$ helm uninstall my-release
Wie geht es weiter?
Nachdem Sie Milvus in Docker installiert haben, können Sie:
Überprüfen Sie Hello Milvus, um zu sehen, was Milvus tun kann.
Lernen Sie die Grundfunktionen von Milvus kennen:
Verteilen Sie Ihren Milvus-Cluster auf Clouds:
Entdecken Sie Milvus WebUI, eine intuitive Webschnittstelle für die Beobachtung und Verwaltung von Milvus.
Erkunden Sie Milvus Backup, ein Open-Source-Tool für Milvus-Datensicherungen.
Birdwatcher, ein Open-Source-Tool zur Fehlersuche in Milvus und zur dynamischen Konfigurationsaktualisierung.
Entdecken Sie Attu, ein Open-Source-GUI-Tool für intuitives Milvus-Management.