Configurar un balanceador de carga de capa 7 para Milvus en AWS
En comparación con un equilibrador de carga de capa 4, un equilibrador de carga de capa 7 ofrece capacidades inteligentes de equilibrio de carga y almacenamiento en caché y es una gran opción para los servicios nativos de la nube.
Esta guía le guía a través de la configuración de un equilibrador de carga de capa 7 para un clúster Milvus que ya se está ejecutando detrás de un equilibrador de carga de capa 4.
Antes de empezar
Ajustar las configuraciones de Milvus
Esta guía asume que ya ha implementado un clúster Milvus detrás de un equilibrador de carga de capa 4 en AWS.
Antes de configurar un equilibrador de carga de capa 7 para este clúster Milvus, ejecute el siguiente comando para eliminar el equilibrador de carga de capa 4.
helm upgrade milvus-demo milvus/milvus -n milvus --set service.type=ClusterIP
Prepare los certificados TLS
TLS requiere certificados para funcionar. Estamos utilizando ACM para gestionar certificados y necesitamos importar un certificado existente en ACM. Consulte Importar certificado. A continuación se muestra un ejemplo.
# 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
Crear un Ingress para generar un equilibrador de carga de capa 7
Prepare el archivo ingress como se indica a continuación y nómbrelo ingress.yaml
. Sustituya el arn y el host del certificado por los suyos propios.
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
A continuación, puede crear el Ingress aplicando el archivo a su clúster EKS.
kubectl apply -f ingress.yaml
Ahora, espera a que AWS configure el balanceador de carga de capa 7. Puedes comprobar el progreso ejecutando
kubectl -f ingress.yaml get -w
La salida debería ser similar a la siguiente:
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 vez que aparezca una dirección en el campo ADDRESS, el equilibrador de carga Layer-7 estará listo para su uso.
Verificar la conexión a través del equilibrador de carga Layer-7
Esta guía utiliza PyMilvus para verificar la conexión al servicio Milvus detrás del equilibrador de carga Layer-7 que acabamos de crear. Para pasos detallados, lea esto.
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")
- El host y server_name deben ser reemplazados por los tuyos.
- Si ha configurado un registro DNS para asignar el nombre de dominio al alb, sustituya el host por el nombre de dominio y omita server_name.