基于 阿里云 ACK 搭建开源向量数据库 Milvus

简介: 生成式 AI(Generative AI)引爆了向量数据库(Vector Database)市场,基于大模型的各种应用场景会需要使用到向量数据库。其中,Milvus 是一个高度灵活、可靠且速度极快的云原生开源向量数据库。它为 embedding 相似性搜索和 AI 应用程序提供支持,并努力使每个组织都可以访问向量数据库。 Milvus 可以存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的十亿级别以上的 embedding 向量。本文介绍在阿里云ACK上部署Milvus并且通过attu访问的步骤。

一、准备资源

可先参考 Environment Checklist for Milvus Milvus on Kubernetes 在云上购买和配置相关的资源。

本人购买的云资源是:

ACK托管版

K8S版本 1.24.6-aliyun.1

3台 32vCPU 128GB ecs.g6.8xlarge

MAC电脑客户端(已安装kubectl工具)

二、集群创建:

登陆ACK控制台:https://cs.console.aliyun.com/?spm=5176.181001.J_5253785160.4.38a84e26LzhVIl#/k8s/cluster/list

image.png

本集群基于Terway网络构建

image.png

为了便于集群访问公网,以及公网访问集群API Server,集群开通时候默认勾选了SNAT和Eip暴露公网api server

image.png

集群Worker节点按照实际需求选用规格配比,本次选用g6实例,配置essd云盘

image.png

由于,前置步骤为集群开启了SNAT,本次不针对每个Worker开启公网地址,如果额外有需求要每个worker绑定公网IP,可以这里开启,或者后续单独给每台worker绑定eip

image.png

后置步骤,按照默认开通集群。


二、连接刚刚创建的ACK集群

选用MAC电脑安装kubectl工具(参考安装指导)

https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/

安装完毕后,创建$HOME/.kube目录下的config

image.png

进去刚刚创建好的集群,粘贴公网访问凭证到config中,也可以生成临时的凭证

image.png

上述操作完毕后,

kubectl get namespace

测试连通性

image.png

详细的操作指导同样可以参考官网链接:

https://help.aliyun.com/document_detail/86494.html?spm=a2c4g.86737.0.0.7ba65143wCxNEb

集群创建完毕后,为了后面部署Milvus,创建一个存储类,并且设置为默认,供后面Milvus的各组件可以自动创建存储卷

集群进入存储-存储类-创建

image.png

存储类型选用了cloud_essd类型云盘,额外新增了zoneId,设置存储所在区域和worker节点在同一个可用区

image.png

设置上面创建的存储类为默认的存储类

kubectl patch storageclass milvus-beijing -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

其中,红框部分替换为自己创建的存储类的名称

image.png

通过,可以看到设置的存储类已经标识为default

kubectl get sc

image.png

三、部署Milvus数据库

本次部署,需要helm部署方式,详细的可以参考官网文档

https://milvus.io/docs/install_cluster-helm.md

首先,添加 Milvus Helm 仓库并更新。

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

helm repo update

因为我之前部署过,所以这里显示已经存在

image.png

安装Milvus 和Attu

helm install my-release milvus/milvus --set attu.enabled=true

安装完毕后显示如下:

image.png

验证下pod的拉起情况,发现etcd的状态是pending状态,不正常,原因是官方设置etcd的PVC总量是10G,而阿里云essd,需要至少20G才能初始化

kubectl get pods

image.png

删掉重建,设置存储容量大于等于20G

image.png

image.png

再根据kubectl get pods刷新,发现所有的Pod都是runnng状态了,两个job类型的pod是completed状态;也可以在控制台的负载界面观察pod的情况(工作负载-有状态,工作负载-无状态)

image.png

四、优化Milvus配置

为了可以公网访问attu工具,需要将attu工具开通公网,控制台登陆集群后,网络-服务,找到my-release-milvus-attu服务

image.png

更新服务的类型由虚拟集群ip为节点负载均衡(公网)

image.png

image.png

更新完毕后,会新增外部端点访问,可以通过浏览器访问attu的登陆界面

image.png

image.png

image.png

如果需要公网访问集群,也可以通过上述方法,将Milvus更新公网端口

image.png

如果针对不同的数据量,可以使用Milvus Sizing Tool去计算Milvus各组件建议的资源配比;通过milvus_resources.yaml 刷新集群组件资源配置

https://milvus.io/tools/sizing/

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5天前
|
消息中间件 Cloud Native 开发者
电子好书发您分享《阿里云云原生开源开发者沙龙北京站 PPT 合集 》
**阿里云开源沙龙PPT合集:北京站聚焦云原生技术** 探索云原生领域的深度与广度,[阿里云](/ebook/8334/116563?spm=a2c6h.26392459.ebook-detail.5.da096cf6t38G15)分享了北京开发者沙龙的精彩内容,涵盖微服务、消息队列等主题,助力开发者洞悉行业趋势。![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_67b12f6cad6e4b2786859b3a668b3351.png)
48 3
|
5天前
|
弹性计算 自然语言处理 开发工具
基于阿里云向量检索 Milvus 版和 LangChain 快速构建 LLM 问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
5天前
|
算法 数据库 Docker
大模型必备向量数据库-Milvus的安装过程
大模型必备向量数据库-Milvus的安装过程
16 0
|
5天前
|
关系型数据库 分布式数据库 数据库
开源之夏2024学生报名启动!阿里云PolarDB社区项目期待你的参与!
开源之夏2024学生报名启动!阿里云PolarDB社区带你变得更强!
开源之夏2024学生报名启动!阿里云PolarDB社区项目期待你的参与!
|
5天前
|
存储 缓存 安全
阿里云EMR数据湖文件系统: 面向开源和云打造下一代 HDFS
本文作者详细地介绍了阿里云EMR数据湖文件系统JindoFS的起源、发展迭代以及性能。
71958 2
|
5天前
|
存储 关系型数据库 MySQL
【专栏】在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个
【4月更文挑战第27天】MySQL与PostgreSQL是两大主流开源数据库,各有特色。MySQL注重简单、便捷和高效,适合读操作密集场景,而PostgreSQL强调灵活、强大和兼容,擅长并发写入与复杂查询。MySQL支持多种存储引擎和查询缓存,PostgreSQL则具备扩展性、强事务支持和高可用特性。选择时应考虑项目需求、团队技能和预期收益。
|
5天前
|
存储 机器学习/深度学习 API
开源向量数据库比较:Chroma, Milvus, Faiss,Weaviate
该文探讨了向量数据库在语义搜索和RAG中的核心作用,并介绍了四个开源向量数据库:Chroma、Milvus、Faiss和Weaviate。这些数据库用于存储高维向量,支持基于相似性的快速搜索,改变了传统的精确匹配方法。文章详细比较了它们的特性,如Chroma的易用性,Milvus的存储效率,Faiss的GPU加速,和Weaviate的图数据模型。选择合适的数据库取决于具体需求,如数据类型、性能和使用场景。
129 0
|
5天前
|
Kubernetes Cloud Native 安全
电子好书发您分享《阿里云云原生开源开发者沙龙北京站 PPT 合集》
? 阿里云开源开发者沙龙北京站精彩回顾!获取PPT合集,深入云原生安全与微服务实践:[北京站PPT](/ebook/8334/116563?spm=a2c6h.26392459.ebook-detail.5.4dc56cf6htj2uT) ? 图文并茂探讨微服务安全与K8s监控解决方案。不容错过的云原生学习资源!?
44 2
|
5天前
|
关系型数据库 OLAP 分布式数据库
「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!
4月26日周五,PolarDB开源社区联合康恩贝将共同举办开源数据库技术沙龙,本次沙龙我们邀请了众多数据库领域的专家,期待大家的参与!
「杭州*康恩贝」4月26日PolarDB开源数据库沙龙,开启报名!
|
5天前
|
存储 人工智能 自然语言处理
基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统
阿里云向量检索 Milvus 版现已无缝集成于阿里云 PAI 平台,一站式赋能用户构建高性能的检索增强生成(RAG)系统。您可以利用 Milvus 作为向量数据的实时存储与检索核心,高效结合 PAI 和 LangChain 技术栈,实现从理论到实践的快速转化,搭建起功能强大的 RAG 解决方案。
基于阿里云向量检索 Milvus 版与 PAI 搭建高效的检索增强生成(RAG)系统
http://www.vxiaotou.com