掘金 人工智能 05月01日 10:59
解锁 Amazon EKS 潜力:基于Amazon EKS(Elastic Kubernetes Service)高效搭建 Milvus 开源向量数据库实践指南
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了如何基于Amazon EKS(Elastic Kubernetes Service)搭建开源向量数据库Milvus。首先,需要准备环境,包括安装Amazon CLI、EKS相关工具(eksctl、kubectl、helm),创建Amazon S3存储桶和Amazon MSK实例。接着,创建EKS集群,并添加Milvus Helm仓库。然后,配置S3作为对象存储,MSK作为消息存储,并部署Milvus数据库。最后,优化Milvus配置,使其可供EKS集群外访问,并安装可视化管理工具Attu。通过这些步骤,成功地在Amazon EKS上搭建了Milvus,为处理大规模向量数据提供了强大的支持。

🛠️ 前期准备:安装Amazon CLI、EKS相关工具(eksctl、kubectl、helm),创建Amazon S3存储桶用于存储Milvus数据,以及创建Amazon MSK实例作为消息存储,记录Bootstrap servers、安全组ID和子网ID等关键信息。

🚀 EKS集群创建:使用eksctl命令创建EKS集群,指定集群名称、Kubernetes版本、区域、节点组名称、节点类型、节点数量等参数,利用托管节点组简化管理和扩展。

📦 Milvus部署:添加Milvus Helm仓库,配置S3存储桶作为对象存储,配置MSK实例作为消息存储,并使用helm命令安装Milvus数据库到指定的Kubernetes命名空间。

🌐 Milvus优化:将Milvus的Service类型修改为LoadBalancer,以便从EKS集群外部访问Milvus服务。安装可视化管理工具Attu,通过Web界面直观地管理和操作Milvus。

在大数据与人工智能快速发展的当下,向量数据库成为了处理非结构化数据以及加速相似性搜索的关键工具。Milvus 作为一款开源的向量数据库,凭借其高效的向量检索能力和对大规模数据的支持,被广泛应用于推荐系统、图像检索、自然语言处理等领域。而 Amazon EKS(Elastic Kubernetes Service)作为 亚马逊云科技 提供的托管式 Kubernetes 服务,能够简化容器化应用的部署与管理。本文将详细介绍如何基于 Amazon EKS 搭建开源向量数据库 Milvus。


一、前提准备

在本次实践过程中,我们首先需要准备环境。首先进入亚马逊云科技,注册账号:

1.1 安装 Amazon CLI ✅

Amazon Command Line Interface(Amazon CLI)是亚马逊云科技提供的一个开源工具,允许用户通过命令行或脚本管理 Amazon 服务。它提供了对众多 Amazon 服务的访问权限,能够执行诸如创建资源、管理配置等操作。安装 Amazon CLI 是与 Amazon 服务交互的基础,以下是安装步骤:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/installaws configure

执行上述命令后,系统会提示输入 亚马逊云科技访问密钥 ID 和秘密访问密钥等信息,这些信息用于认证用户的亚马逊云科技账户,从而允许 CLI 执行相关操作。

1.2 安装 EKS 相关工具 ✅

为了方便地创建和管理 EKS 集群,需要安装以下几个关键工具:

curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmpsudo mv /tmp/eksctl /usr/local/bin
curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"chmod +x kubectlsudo mv kubectl /usr/local/bin/
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

1.3 创建 Amazon S3 存储桶 ✅

Amazon S3(Simple Storage Service)是亚马逊云科技提供的一种对象存储服务,具有高持久性、高可用性和可扩展性。在搭建 Milvus 时,可将 S3 作为对象存储,用于存储 Milvus 的数据。创建 S3 存储桶的命令如下:

aws s3api create-bucket --bucket milvus-s3-bucket-eks --region us-west-2

⚠️ 请替换 milvus-s3-bucket-eks 为你唯一命名的桶名

1.4 创建 Amazon MSK 实例 ✅

Amazon MSK(Managed Streaming for Apache Kafka)是一项完全托管的服务,兼容 Apache Kafka,用于构建实时流数据管道。在 Milvus 中,可将 MSK 作为消息存储,用于处理数据的异步传输等场景。建议使用亚马逊云科技控制台创建一个 MSK 实例,设置默认配置即可。创建完成后,需要记录下以下关键信息:


二、创建 EKS 集群

有了上述准备工作后,接下来就可以创建 EKS 集群了。以下是创建命令:

eksctl create cluster \--name milvus-cluster \--version 1.28 \--region us-west-2 \--nodegroup-name milvus-nodes \--node-type t3.large \--nodes 3 \--nodes-min 1 \--nodes-max 4 \--managed

这条命令指定了集群的名称为 milvus-cluster,使用 Kubernetes 版本 1.28,在 us-west-2 区域创建。节点组名为 milvus-nodes,节点类型为 t3.large,初始创建 3 个节点,节点的最小数量为 1,最大数量为 4,并且使用托管节点组,这样可以简化节点的管理和扩展。


二、部署 Milvus 数据库

2.1 添加 Milvus Helm 仓库

为了方便安装和管理 Milvus,需要先将其 Helm 仓库添加到本地。执行以下命令

helm repo add milvus https://zilliztech.github.io/milvus-helm/helm repo update

这样就可以从该仓库中获取 Milvus 的 Helm Chart,即 Milvus 的安装包和配置模板。

2.2 配置 S3 作为 Object Storage

在 Milvus 的配置文件 values.yaml 中,增加以下配置以使用之前创建的 S3 存储桶作为对象存储:

external:etcd:enabled: falseminio:enabled: falsecomponents:standalone:enabled: falsecluster:enabled: trues3:enabled: truebucketName: milvus-s3-bucket-eksregion: us-west-2accessKey: <your-aws-access-key>secretKey: <your-aws-secret-key>

2.3 配置 MSK 作为 Message Storage

kafka:brokerList: "<your-msk-bootstrap-server>"enable: trueexternal: truetype: kafka

<your-aws-access-key><your-aws-secret-key> 替换为实际的亚马逊云科技访问密钥和秘密密钥,以便 Milvus 能够访问 S3 存储桶。

2.4 部署 Milvus

同时,在 values.yaml 中添加以下配置,将之前创建的 MSK 实例作为消息存储:

helm install milvus milvus/milvus -f values.yaml --namespace milvus --create-namespace

<your-msk-bootstrap-server>替换为 MSK 实例的实际 bootstrap 地址。

这条命令会根据指定的 Helm Chart 和配置文件,在 Kubernetes 的 milvus 命名空间(如果不存在则创建)中安装 Milvus 数据库。


三、优化 Milvus 配置

3.1 配置 Milvus 服务可供 EKS 集群外访问

默认情况下,Milvus 的服务只能在 EKS 集群内部访问。为了从集群外部访问 Milvus,需要将 Milvus 的 Service 修改为 LoadBalancer 类型。执行以下命令::

kubectl edit svc milvus-cluster-standalone -n milvus

type: ClusterIP 改为:

type: LoadBalancer

3.2 安装可视化管理工具 Attu

kubectl apply -f https://raw.githubusercontent.com/zilliztech/attu/main/deploy/k8s/attu-deployment.yaml

安装完成后,可以通过绑定域名或使用负载均衡器的外网地址访问 Attu 的 Web 界面,地址为 http://:3000,从而实现对 Milvus 的直观管理和操作。


亚马逊云科技提供丰富的免费套餐,包括750小时的Amazon EC2计算资源、5GB的Amazon S3存储空间以及750小时的Amazon RDS数据库服务,让您轻松体验云端技术。

通过以上步骤,我们成功地在 Amazon EKS 上搭建了开源向量数据库 Milvus,并进行了相关的优化配置。这种结合了云服务和开源数据库的方案,充分利用了亚马逊云科技的基础设施优势和 Milvus 的高性能向量检索能力,为处理大规模向量数据提供了强大的支持。在实际应用中,可以根据业务需求进一步调整和优化 Milvus 的配置,例如调整资源分配、优化数据模型等,以实现最佳性能。

同时,随着技术的不断发展,Milvus 和 Amazon EKS 也会持续更新和改进,为用户提供额外的特性和功能,让我们共同期待它们在未来的发展中带来更多的惊喜。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Amazon EKS Milvus 向量数据库 Kubernetes
相关文章