跳到主要内容

在 AWS 上为 Milvus 设置七层负载均衡器

与四层负载均衡器相比,七层负载均衡器提供智能负载均衡和缓存功能,是云原生服务的绝佳选择。

本指南将指导您为已在四层负载均衡器后运行的 Milvus 集群设置七层负载均衡器。

开始之前

调整 Milvus 配置

本指南假设您已经在 AWS 上在四层负载均衡器后部署了 Milvus 集群

在为此 Milvus 集群设置七层负载均衡器之前,运行以下命令移除四层负载均衡器。

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

准备 TLS 证书

TLS 需要证书才能工作。我们使用 ACM 管理证书,需要将现有证书导入 ACM。请参考导入证书。以下是一个示例。

# 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

创建 Ingress 以生成七层负载均衡器

按如下方式准备 ingress 文件并将其命名为 ingress.yaml请将证书 arn 和主机替换为您自己的。

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

然后,您可以通过将文件应用到 EKS 集群来创建 Ingress。

kubectl apply -f ingress.yaml

现在,等待 AWS 设置七层负载均衡器。您可以通过运行以下命令检查进度

kubectl -f ingress.yaml get -w

输出应类似于以下内容:

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

一旦 ADDRESS 字段中显示地址,七层负载均衡器就可以使用了。

通过七层负载均衡器验证连接

本指南使用 PyMilvus 验证与我们刚刚创建的七层负载均衡器后的 Milvus 服务的连接。详细步骤请参阅此处

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")
  • hostserver_name 应替换为您自己的。
  • 如果您已设置 DNS 记录将域名映射到 alb,请将 host 替换为域名并省略 server_name