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

Einrichten eines Layer-7-Load-Balancers für Milvus auf AWS

Im Vergleich zu einem Layer-4-Load-Balancer bietet ein Layer-7-Load-Balancer intelligente Load-Balancing- und Caching-Funktionen und ist eine gute Wahl für Cloud-native Services.

Diese Anleitung führt Sie durch die Einrichtung eines Layer-7 Load Balancers für einen Milvus-Cluster, der bereits hinter einem Layer-4 Load Balancer läuft.

Bevor Sie beginnen

Anpassen der Milvus-Konfigurationen

In dieser Anleitung wird davon ausgegangen, dass Sie bereits einen Milvus-Cluster hinter einem Layer-4-Load-Balancer auf AWS bereitgestellt haben.

Bevor Sie einen Layer-7-Loadbalancer für diesen Milvus-Cluster einrichten, führen Sie den folgenden Befehl aus, um den Layer-4-Loadbalancer zu entfernen.

helm upgrade milvus-demo milvus/milvus -n milvus --set service.type=ClusterIP

TLS-Zertifikate vorbereiten

TLS erfordert Zertifikate, um zu funktionieren. Wir verwenden ACM zur Verwaltung von Zertifikaten und müssen ein vorhandenes Zertifikat in ACM importieren. Siehe Zertifikat importieren. Im Folgenden finden Sie ein Beispiel.

# If the import-certificate command is successful, it returns the arn of the imported certificate.
aws acm import-certificate --certificate fileb://Certificate.pem \
      --certificate-chain fileb://CertificateChain.pem \
      --private-key fileb://PrivateKey.pem  

Erstellen Sie einen Ingress, um einen Layer-7 Load Balancer zu erzeugen

Bereiten Sie die Ingress-Datei wie folgt vor und nennen Sie sie ingress.yaml. Ersetzen Sie das Zertifikat arn und host durch Ihr eigenes.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: milvus
  name: milvus-demo
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/backend-protocol-version: GRPC
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]'
    alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:region:account-id:certificate/certificate-id"

spec:
  ingressClassName: alb
  rules:
    - host: milvus-demo.milvus.io
      http:
        paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: milvus-demo
              port:
                number: 19530

Dann können Sie den Ingress erstellen, indem Sie die Datei auf Ihren EKS-Cluster anwenden.

kubectl apply -f ingress.yaml

Warten Sie nun darauf, dass AWS den Layer-7-Loadbalancer einrichtet. Sie können den Fortschritt überprüfen, indem Sie

kubectl -f ingress.yaml get -w

Die Ausgabe sollte in etwa so aussehen wie die folgende:

NAME          CLASS   HOSTS                   ADDRESS                                                                PORTS   AGE
milvus-demo   alb     milvus-demo.milvus.io   k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com   80      10m

Sobald eine Adresse im Feld ADDRESS angezeigt wird, ist der Layer-7-Load-Balancer einsatzbereit.

Überprüfen Sie die Verbindung durch den Layer-7-Load-Balancer

In dieser Anleitung wird PyMilvus verwendet, um die Verbindung zum Milvus-Dienst hinter dem soeben erstellten Layer-7-Load-Balancer zu überprüfen. Für detaillierte Schritte, lesen Sie dies.

from pymilvus import (
    connections,
    utility,
    FieldSchema,
    CollectionSchema,
    DataType,
    Collection,
)

connections.connect("default", host="k8s-milvus-milvusde-2f72215c02-778371620.us-east-2.elb.amazonaws.com", port="443", secure=True, server_name="milvus-demo.milvus.io")
  • Den host und server_name sollten Sie durch Ihren eigenen ersetzen.
  • Wenn Sie einen DNS-Eintrag eingerichtet haben, um den Domänennamen der alb zuzuordnen, ersetzen Sie host durch den Domänennamen und lassen Sie server_name weg.

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