milvus-logo
LFAI
Home
  • Guide d'administration
    • Déploiement

Configurer un équilibreur de charge de niveau 7 pour Milvus sur AWS

Comparé à un équilibreur de charge de couche 4, un équilibreur de charge de couche 7 offre des capacités intelligentes d'équilibrage de charge et de mise en cache et constitue un excellent choix pour les services natifs dans le nuage.

Ce guide vous guide dans la configuration d'un équilibreur de charge de couche 7 pour un cluster Milvus fonctionnant déjà derrière un équilibreur de charge de couche 4.

Avant de commencer

Modifier les configurations de Milvus

Ce guide suppose que vous avez déjà déployé un cluster Milvus derrière un équilibreur de charge de niveau 4 sur AWS.

Avant de configurer un équilibreur de charge de couche 7 pour ce cluster Milvus, exécutez la commande suivante pour supprimer l'équilibreur de charge de couche 4.

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

Préparer les certificats TLS

TLS nécessite des certificats pour fonctionner. Nous utilisons ACM pour gérer les certificats et devons importer un certificat existant dans ACM. Reportez-vous à la section Importer un certificat. Voici un exemple.

# 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  

Créer un fichier d'entrée pour générer un équilibreur de charge de couche 7

Préparez le fichier d'entrée comme suit et nommez-le ingress.yaml. Remplacez l'arn et l'hôte du certificat par les vôtres.

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

Vous pouvez ensuite créer l'Ingress en appliquant le fichier à votre cluster EKS.

kubectl apply -f ingress.yaml

Attendez maintenant qu'AWS configure l'équilibreur de charge Layer-7. Vous pouvez vérifier la progression en exécutant

kubectl -f ingress.yaml get -w

La sortie devrait être similaire à ce qui suit :

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

Une fois qu'une adresse s'affiche dans le champ ADDRESS, l'équilibreur de charge Layer-7 est prêt à être utilisé.

Vérifier la connexion via l'équilibreur de charge Layer-7

Ce guide utilise PyMilvus pour vérifier la connexion au service Milvus derrière l'équilibreur de charge Layer-7 que nous venons de créer. Pour des étapes détaillées, lisez ceci.

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")
  • L'hôte et le nom du serveur doivent être remplacés par les vôtres.
  • Si vous avez configuré un enregistrement DNS pour faire correspondre le nom de domaine à l'alb, remplacez l'hôte par le nom de domaine et omettez nom_serveur.

Traduit parDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?