目录
一、准备资源
二、集群创建:
本集群基于Terway网络构建
二、连接刚刚创建的ACK集群
三、部署Milvus数据库
四、优化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控制台:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台
本集群基于Terway网络构建
为了便于集群访问公网,以及公网访问集群API Server,集群开通时候默认勾选了SNAT和Eip暴露公网api server
集群Worker节点按照实际需求选用规格配比,本次选用g6实例,配置essd云盘
由于,前置步骤为集群开启了SNAT,本次不针对每个Worker开启公网地址,如果额外有需求要每个worker绑定公网IP,可以这里开启,或者后续单独给每台worker绑定eip
后置步骤,按照默认开通集群。
二、连接刚刚创建的ACK集群
选用MAC电脑安装kubectl工具(参考安装指导)
Install and Set Up kubectl on macOS | Kubernetes
安装完毕后,创建$HOME/.kube目录下的config
进去刚刚创建好的集群,粘贴公网访问凭证到config中,也可以生成临时的凭证
上述操作完毕后,
kubectl get namespace
测试连通性
详细的操作指导同样可以参考官网链接:
如何获取KubeConfig并通过kubectl连接集群_容器服务Kubernetes版-阿里云帮助中心
集群创建完毕后,为了后面部署Milvus,创建一个存储类,并且设置为默认,供后面Milvus的各组件可以自动创建存储卷
集群进入存储-存储类-创建
存储类型选用了cloud_essd类型云盘,额外新增了zoneId,设置存储所在区域和worker节点在同一个可用区
设置上面创建的存储类为默认的存储类
kubectl patch storageclass milvus-beijing -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
其中,红框部分替换为自己创建的存储类的名称
通过,可以看到设置的存储类已经标识为default
kubectl get sc
三、部署Milvus数据库
本次部署,需要helm部署方式,详细的可以参考官网文档
Install Milvus Cluster with Helm Milvus documentation
首先,添加 Milvus Helm 仓库并更新。
helm repo add milvus Milvus Helm Charts | milvus-helm
helm repo update
因为我之前部署过,所以这里显示已经存在
安装Milvus 和Attu
helm install my-release milvus/milvus --set attu.enabled=true
安装完毕后显示如下:
验证下pod的拉起情况,发现etcd的状态是pending状态,不正常,原因是官方设置etcd的PVC总量是10G,而阿里云essd,需要至少20G才能初始化
kubectl get pods
删掉重建,设置存储容量大于等于20G
再根据kubectl get pods刷新,发现所有的Pod都是runnng状态了,两个job类型的pod是completed状态;也可以在控制台的负载界面观察pod的情况(工作负载-有状态,工作负载-无状态)
四、优化Milvus配置
为了可以公网访问attu工具,需要将attu工具开通公网,控制台登陆集群后,网络-服务,找到my-release-milvus-attu服务
更新服务的类型由虚拟集群ip为节点负载均衡(公网)
更新完毕后,会新增外部端点访问,可以通过浏览器访问attu的登陆界面
如果需要公网访问集群,也可以通过上述方法,将Milvus更新公网端口
如果针对不同的数据量,可以使用Milvus Sizing Tool去计算Milvus各组件建议的资源配比;通过milvus_resources.yaml 刷新集群组件资源配置
Milvus Sizing Tool · Vector Database built for scalable similarity search