milvus-logo
LFAI
Casa
  • Guida all'amministrazione

Configurare un bilanciatore di carico Layer-7 per Milvus su AWS

Rispetto a un bilanciatore di carico Layer-4, un bilanciatore di carico Layer-7 offre funzionalità intelligenti di bilanciamento del carico e di caching ed è un'ottima scelta per i servizi cloud-nativi.

Questa guida illustra la configurazione di un bilanciatore di carico Layer-7 per un cluster Milvus già in esecuzione dietro un bilanciatore di carico Layer-4.

Prima di iniziare

Modificare le configurazioni di Milvus

Questa guida presuppone che abbiate già implementato un cluster Milvus dietro un bilanciatore di carico Layer-4 su AWS.

Prima di impostare un bilanciatore di carico Layer-7 per questo cluster Milvus, eseguire il seguente comando per rimuovere il bilanciatore di carico Layer-4.

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

Preparare i certificati TLS

Il TLS richiede certificati per funzionare. Stiamo usando ACM per gestire i certificati e dobbiamo importare un certificato esistente in ACM. Fare riferimento a Importazione di certificati. Di seguito è riportato un esempio.

# 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  

Creare un ingress per generare un bilanciatore di carico Layer-7

Preparare il file di ingress come segue e nominarlo ingress.yaml. Sostituire il certificato arn e host con il proprio.

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

Quindi è possibile creare l'Ingress applicando il file al cluster EKS.

kubectl apply -f ingress.yaml

Ora, attendere che AWS imposti il bilanciatore di carico Layer-7. È possibile verificare i progressi eseguendo

kubectl -f ingress.yaml get -w

L'output dovrebbe essere simile al seguente:

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

Una volta visualizzato un indirizzo nel campo ADDRESS, il bilanciatore di carico Layer-7 è pronto per l'uso.

Verifica della connessione attraverso il bilanciatore di carico Layer-7

Questa guida utilizza PyMilvus per verificare la connessione al servizio Milvus dietro il bilanciatore di carico Layer-7 appena creato. Per i passi dettagliati, leggete qui.

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'host e il nome_del_server devono essere sostituiti con i propri.
  • Se si è impostato un record DNS per mappare il nome di dominio all'alb, sostituire l'host con il nome di dominio e omettere nome_server.

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?