Configurar um balanceador de carga de camada 7 para o Milvus no AWS
Quando comparado a um balanceador de carga de camada 4, um balanceador de carga de camada 7 oferece recursos inteligentes de balanceamento de carga e armazenamento em cache e é uma ótima opção para serviços nativos da nuvem.
Este guia orienta-o na configuração de um balanceador de carga de camada 7 para um cluster Milvus já em execução atrás de um balanceador de carga de camada 4.
Antes de começar
Ajustar as configurações do Milvus
Este guia pressupõe que você já implantou um cluster Milvus por trás de um balanceador de carga de camada 4 no AWS.
Antes de configurar um balanceador de carga da Camada 7 para esse cluster do Milvus, execute o seguinte comando para remover o balanceador de carga da Camada 4.
helm upgrade milvus-demo milvus/milvus -n milvus --set service.type=ClusterIP
Preparar certificados TLS
O TLS requer certificados para funcionar. Estamos a usar o ACM para gerir certificados e precisamos de importar um certificado existente para o ACM. Consulte Importar certificado. A seguir, um exemplo.
# 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
Criar um Ingress para gerar um balanceador de carga de camada 7
Prepare o ficheiro de entrada da seguinte forma e dê-lhe o nome de ingress.yaml
. Substitua o arn do certificado e o host pelo seu próprio.
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
Em seguida, você pode criar o Ingress aplicando o arquivo ao cluster do EKS.
kubectl apply -f ingress.yaml
Agora, aguarde até que o AWS configure o balanceador de carga de camada 7. Você pode verificar o progresso executando
kubectl -f ingress.yaml get -w
A saída deve ser semelhante à seguinte:
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
Quando um endereço for exibido no campo ENDEREÇO, o balanceador de carga da Camada 7 estará pronto para uso.
Verificar a conexão através do balanceador de carga Layer-7
Este guia usa o PyMilvus para verificar a conexão com o serviço Milvus por trás do balanceador de carga Layer-7 que acabamos de criar. Para obter etapas detalhadas, leia isto.
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")
- O host e o nome_do_servidor devem ser substituídos pelo seu próprio nome.
- Se tiver configurado um registo DNS para mapear o nome de domínio para o alb, substitua o anfitrião pelo nome de domínio e omita server_name.