BLOG

Bereitstellung der Qdrant-Datenbank in Kubernetes mit Terraform: Eine Schritt-für-Schritt-Anleitung mit Beispielen

Roman Frey
June 4, 2024
Table of Contents:

Wenn es um die Verwaltung umfangreicher Vektorsuchvorgänge geht, entwickelt sich Qdrant schnell zur ersten Wahl. Es handelt sich um eine Open-Source-Vektordatenbank, die sich durch die Speicherung, Verwaltung und Durchführung von Ähnlichkeitssuchen in Vektoren auszeichnet. Für diejenigen, die Kubernetes für die Orchestrierung nutzen, kann die Integration von Qdrant über Terraform den Bereitstellungsprozess optimieren und die Skalierbarkeit und Reproduzierbarkeit der Infrastruktur verbessern.

ilert AI entwickelt sich schnell weiter, und wir haben eine umfangreiche Liste von AI-unterstützten Funktionen eingeführt. Die intelligente Gruppierung von Alarmen ist eine der neuesten, und wir haben Qdrant als Backend dafür verwendet. Unsere schnelle Recherche hat ergeben, dass es im Internet keinen Terraform-Implementierungsleitfaden für Qdrant gibt, sondern nur die Helm-Variante, daher haben wir uns entschlossen, diesen Artikel zu veröffentlichen. In diesem Blogbeitrag führen wir Sie durch den Prozess der Bereitstellung von Qdrant auf einem Kubernetes-Cluster mithilfe von Terraform, komplett mit Schritt-für-Schritt-Beispielen, um sicherzustellen, dass Sie folgen können, auch wenn Sie relativ neu in diesen Technologien sind.

Ein Wort zu Qdrant: Eine leistungsstarke Vektordatenbank

Im Kern ist Qdrant darauf ausgelegt, Vektoren zu speichern, d. h. Listen von Gleitkommazahlen, die die Merkmale von Elementen in einem hochdimensionalen Raum darstellen. Diese Vektoren können von Benutzerpräferenzen in einem Empfehlungssystem bis hin zu Merkmalsdeskriptoren in Bilderkennungssystemen alles darstellen.


Qdrant zeichnet sich durch mehrere robuste Merkmale aus:


  • Persistenz und Hochverfügbarkeit: Im Gegensatz zu einigen Vektordatenbanken, die nur für die In-Memory-Nutzung konzipiert sind, unterstützt Qdrant die Datenpersistenz. Durch die Speicherung der Daten auf der Festplatte wird eine hohe Verfügbarkeit und Dauerhaftigkeit gewährleistet, ohne die Abfrageleistung zu beeinträchtigen.
  • Effiziente Ähnlichkeitssuche: Durch den Einsatz modernster Indizierungstechniken wie HNSW (Hierarchical Navigable Small World Graphs) bietet Qdrant eine schnelle Suche nach den nächsten Nachbarn in hochdimensionalen Räumen, die für Echtzeitanwendungen entscheidend ist.
  • Skalierbare Architektur: Bei der Entwicklung von Qdrant wurde besonderer Wert auf Skalierbarkeit gelegt. Es unterstützt die horizontale Skalierung und eignet sich damit perfekt für den Einsatz in Kubernetes-Clustern.
  • Flexible Datenverwaltung: Neben Vektoren ermöglicht Qdrant die Speicherung zusätzlicher Nutzdaten, die für die Filterung und die Bereitstellung von mehr Kontext während der Suche verwendet werden können.
Qdrant zeichnet sich durch mehrere robuste Merkmale aus

Voraussetzungen

Bevor Sie mit der Bereitstellung beginnen, stellen Sie sicher, dass Sie Folgendes haben:‍

  • ein Kubernetes-Cluster eingerichtet und zugänglich ist
  • Terraform auf Ihrem Rechner installiert ist
  • kubectl installiert und konfiguriert ist, um mit Ihrem Kubernetes-Cluster zu kommunizieren Grundlegendes Verständnis von Kubernetes- und Terraform-Konzepten
  • Grundlegendes Verständnis von Kubernetes- und Terraform-Konzepten

Schritt 1: Einrichten Ihrer Terraform-Konfiguration

Zunächst müssen Sie Ihre Terraform-Konfiguration für die Bereitstellung von Qdrant einrichten. Erstellen Sie ein Verzeichnis, in dem Sie alle Ihre Terraform-Konfigurationen speichern.

mkdir qdrant-deployment

cd qdrant-deployment 

Erstellen Sie eine providers.tf-Datei, um die Kubernetes-Anbieter zu definieren.

terraform {

  required_providers {

    kubernetes = {

      source = "hashicorp/kubernetes"

    }

  }

}

provider "kubernetes" {

  config_path = "~/.kube/config"

}

Schritt 2: Definieren der Qdrant-Bereitstellung

Erstellen Sie eine Datei qdrant-deployment.tf im selben Verzeichnis. Diese Datei definiert die Bereitstellungsressourcen für Qdrant. Aktualisieren Sie die Bereitstellungsspezifikation entsprechend Ihren spezifischen Konfigurationsanforderungen.

module "qdrant" {

  source  = "iLert/qdrant/kubernetes"

  version = "1.0.0"  # Check for the latest version on the Terraform Registry

  # You can customize your deployment by specifying module variables here

  namespace        = "qdrant"

  replica_count    = 3

  qdrant_version   = "latest"  # Use a specific version if necessary

}

Hinweis: Ändern Sie namespace, replica_count und qdrant_version entsprechend Ihren Bereitstellungsanforderungen.

Schritt 3: Bereitstellung von Qdrant mit Terraform

Initialisieren Sie Terraform, um das Qdrant-Modul herunterzuladen und einzurichten.

terraform init 

Wenden Sie die Konfiguration an. Terraform berechnet die vorzunehmenden Änderungen und stellt einen Plan vor.

terraform apply 

Bestätigen Sie die Bereitstellung, indem Sie „yes“ eingeben, wenn Sie dazu aufgefordert werden. Terraform fährt mit der Bereitstellung von Qdrant in Ihrem Kubernetes-Cluster unter Verwendung der über das Modul angegebenen Konfigurationen fort.

Schritt 4: Überprüfen Sie die Bereitstellung

Sobald Terraform Ihre Konfigurationen erfolgreich angewendet hat, stellen Sie sicher, dass die Qdrant-Pods und -Dienste betriebsbereit sind.

kubectl get pods -n qdrant 

kubectl get services -n qdrant 

Sie sollten sehen, dass die Qdrant-Pods laufen und ein Dienst eingerichtet ist, um Qdrant für andere Anwendungen oder Dienste zugänglich zu machen.

Schritt 5: Interaktion mit Qdrant

Zu diesem Zeitpunkt ist Qdrant bereitgestellt und läuft in Ihrer Kubernetes-Umgebung. Sie können nun über die REST-API oder eine der für Qdrant verfügbaren Client-Bibliotheken mit dem System interagieren, um Vektorsuchen durchzuführen oder Vektoren und Nutzlasten zu verwalten.

Fazit

Die Integration von Qdrant in Kubernetes stellt eine leistungsstarke Lösung für Unternehmen und Entwickler dar, die erweiterte Vektorsuchfunktionen nutzen möchten. Der automatisierte Infrastructure-as-Code-Ansatz vereinfacht nicht nur den Bereitstellungsprozess, sondern verbessert auch die Robustheit und Skalierbarkeit Ihrer Anwendungen. Mit der Weiterentwicklung von KI und maschinellem Lernen wird die effiziente Verarbeitung und Suche in großen Datensätzen immer wichtiger. Für weitere Anpassungen und erweiterte Konfigurationen lesen Sie bitte die Dokumentation auf der Terraform Registry für das ilert Qdrant-Modul, die offizielle Qdrant-Dokumentation, um den vollen Funktionsumfang Ihrer neuen Qdrant-Bereitstellung zu erkunden, und die Terraform-Provider-Dokumentation für Kubernetes.

Blog-Beiträge, die dir gefallen könnten:

Sind Sie bereit, Ihr Incident-Management zu verbessern?
Start for free
Unsere Cookie-Richtlinie
Wir verwenden Cookies, um Ihre Erfahrung zu verbessern, den Seitenverkehr zu verbessern und für Marketingzwecke. Erfahren Sie mehr in unserem Datenschutzrichtlinie.
Open Preferences
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.
Danke! Deine Einreichung ist eingegangen!
Hoppla! Beim Absenden des Formulars ist etwas schief gelaufen.