专栏首页Reinvent Data ScienceMilvus x KubeSphere: 如何一键部署火爆全球的开源向量数据库

Milvus x KubeSphere: 如何一键部署火爆全球的开源向量数据库

✏️ 作者介绍:Mia Li,Zilliz 数据工程师

本文将介绍如何使用 KubeSphere 容器平台可视化部署 Milvus 向量数据库以及 Milvus 在云原生场景下的基本使用。下面,让我们先来简单了解一下 Milvus 和 KubeSphere 吧!

Milvus 是什么?

Milvus 是一款开源的向量数据库,支持针对 TB 级向量的增删改操作和近实时查询,具有高度灵活、稳定可靠以及高速查询等特点。Milvus 集成 FAISS、NMSLIB、Annoy 等常见的向量索引库,提供一整套简单直观的 API,允许用户针对不同场景选择适合的索引类型。此外,Milvus 还支持标量数据过滤,进一步提高召回率,增强搜索的灵活性。

KubeSphere 是什么?

KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器平台,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。KubeSphere 提供了运维友好的向导式操作界面,帮助企业快速构建一个强大和功能丰富的容器云平台。

环境准备

1. 创建新的 Workspace。

点击左上角平台管理,选择访问控制,创建名为 milvus-workspace 的企业空间。

2. 创建项目。

点击左侧的项目管理,创建一个名为 milvus 的新项目。KubeSphere 中的项目等同于 Kubernetes 中的 Namespace。

3. 添加镜像仓库

进入创建好的 milvus-workspace,分别将 milvus-helmhelm-stable 仓库添加到 KubeSphere 容器平台。

仓库地址如下:

https://milvus-io.github.io/milvus-helm/
https://charts.helm.sh/stable/

部署 StorageClass

为了在 Kubernetes 集群中将一个存储卷(volume)同时挂载在多个 pod 上,允许多个 pod 对同一组数据作出修改,共享存储必不可少。目前常见的共享资源协议有 Network File System(NFS)、Common Internet File System(CIFS)等。手动运维持久卷(Persistent Volume,PV)十分繁琐,因此 KubeSphere 也支持动态卷供应(Dynamic Volume Provisioning)。这一功能基于存储类型(Storage Class)实现,为管理员提供了创建 PV 的模板。下文将以 NFS 为例,演示如何利用可用的 NFS server 和 nfs-client-provisioner 插件配置一个 NFS 类型的 StorageClass,实现在用户请求时自动提供存储。

  • 在 AWS 上部署建议使用 Elastic File System (EFS).
  • 在 Azure 上部署建议使用 Azure File Storage (AFS).

1. 在全部 worker 节点安装 nfs-common。

$ sudo apt-get update
$ sudo apt-get install nfs-common -y

2. 进入 Milvus 项目,部署新应用。

3. 选择 helm-stable 仓库,搜索 nfs-client-provisioner

4. 选择 nfs-client-provisioner,点击部署

5. 修改应用配置。

server:NFS server 的 IP 地址。

path:NFS server 所在的导出目录。

mountOptions:client 上挂载 NFS 挂载点时使用的参数。

6. 查看 StorageClass。

启动成功后,点击左上角进入集群管理,点击存储管理,查看存储类型

可以看到,此时 StorageClass 中存在一个名为 nfs-client 的类型。在后续修改 Milvus 集群的配置文件时,显式指定 Persistent Volume Claim(PVC)对应的 StorageClass 为 nfs-client,StorageClass 通过模板自动创建 PV 并与 PVC 绑定。

部署 Milvus 集群

Milvus 作为一款针对海量特征数据的向量数据库,其在单台服务器上的数据处理规模就可达到十亿级。而对于百亿甚至千亿级数据,则需要可横向扩展的 Milvus 集群来满足对如此大规模的向量数据的高性能检索需求。下面我们将介绍如何在 KubeSphere 上利用 chart 仓库一键部署 Milvus 集群。

1. 添加 Milvus 应用。

同上文的 nfs-client,点击应用负载部署新的应用。

2. 修改配置文件。

开启集群模式,并修改 StorageClass 参数,用于引用 NFS server 的持久存储。此外可以根据需要指定 Milvus 的 gRPC 服务端口。

A

B

Parameter

Value

cluster.enabled

TRUE

persistence.enabled

TRUE

persistence.persistentVolumeClaim.storageClass

nfs-client

service.port

19530(default)

3. 部署成功。

修改参数后点击部署,稍等片刻即可在 KubeSphere 应用列表中看到 Milvus 集群,表示 Milvus 部署成功。

访问 Milvus 集群

1. 查看外网访问类型。

由上图可见默认服务为 ClusterIP,即只有集群内的应用可以访问该服务,而不允许从集群外部访问。因此当我们从集群外部访问时,需要更换服务类型以暴露应用。Kubernetes 有两种暴露服务的访问方式:NodePort 和 LoadBalancer。下文将演示通过 KubeSphere 直接修改服务类型,允许从外网访问并使用 Milvus 集群。

2. 点击编辑外网访问,选择 NodePort。

修改后可以看到 gRPC 服务端口映射出了节点端口。此时,只需连接集群中任意一台服务器的 IP 地址和 Mishards 的节点端口即可在集群外部使用该 Milvus 集群。

3. 在集群外的服务器安装 Milvus Python SDK:

$ pip3 install pymilvus==1.1.0

4. 下载 Python 示例代码:

$ wget https://raw.githubusercontent.com/milvus-io/pymilvus/v1.1.0/examples/example.py

修改 _HOST 为集群中任意一台服务器 IP 地址,_PORT 为暴露服务的静态端口。

5. 运行示例代码:

$ python3 example.py 
# You are expected to see the following output. 
CollectionSchema(collection_name='example_collection_', dimension=8, index_file_size=32, metric_type=<MetricType: L2>)
...

Milvus 支持使用多种 AI 模型将非结构化数据向量化,提供向量数据搜索服务,可广泛应用于图像处理、自然语言处理、推荐系统、新药发现等领域。如需处理海量特征向量,则可采取本文介绍的 Milvus 分布式集群方案来增强横向扩容能力。得益于其面向开发、测试和运维友好的图形用户界面,使用 KubeSphere 一键部署 Milvus 集群可以大大节省学习和部署 Kubernetes 以及 Milvus 及其同类应用的成本。

参考文章

  1. https://kubesphere.io/zh/docs/reference/storage-system-installation/nfs-server/
  2. https://www.myfreax.com/how-to-mount-an-nfs-share-in-linux/

Github @Milvus-io|CSDN @Zilliz Planet|Bilibili @Zilliz-Planet

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的孵化阶段项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。

本文分享自微信公众号 - ZILLIZ(Zilliztech),作者:Mia Li

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-06-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • KubeSphere 3.0:敞开胸怀、海纳百川

    “企业数字化转型的推进,不仅需要云原生的方法论,更需要趁手的工具。”KubeSphere容器平台产品经理于爽在KubeSphere 3.0媒体发布会上一针见血地...

    数据猿
  • Milvus 在唯品会搜索推荐的实践

    随着互联网数据规模的爆炸式增长,当前主流电商平台的商品品类及数量越来越多,用户却越来越难以便捷地找到自己需要的产品。

    Zilliz RDS
  • 当开源遇上云,Amazon EKS Distro 与 KubeSphere 能擦出怎样的火花?

    2021 年 1 月初,KubeSphere 社区也与亚马逊云科技联合宣布了 KubeSphere 正式登陆 Amazon Quick Starts,这些重大消...

    CNCF
  • 霸榜 GitHub,狂揽6000星,这是今年最值得关注的开源项目!

    对于很多 AI 应用开发者来说,尽管模型已经训练完成,一旦提及落地部署 ,总逃不开“向量召回”这一魔咒。

    Zilliz RDS
  • 基于 Milvus 的 VOVA 拍照购实践

    VOVA 是一个面向全球市场的新兴跨境电商平台,专注于外贸出口,客户遍布六大洲一百多个国家和地区。VOVA 支持 20 种主流语言和 35 种主流货币,拥有数百...

    Zilliz RDS
  • KubeSphere 部署 TiDB 云原生分布式数据库

    TiDB 是 PingCAP 公司自主研发的开源分布式关系型数据库 TiDB,为企业关键业务打造,具备「分布式强一致性事务、在线弹性水平扩展、故障自恢复的高可用...

    PingCAP
  • Milvus 在 Tokopedia 的应用 | 让语义搜索更加智能

    Tokopedia 是印度尼西亚最大的电商平台,目前拥有逾 9000 万月活跃用户和 860 万家商户,覆盖印尼 98% 的行政区。我们深知,帮助用户迅速并精准...

    Zilliz RDS
  • 垃圾询盘过滤,焦点科技的 Milvus 实践

    Milvus (https://milvus.io/) 向量搜索引擎开源半年以来,全球已经有数百家企业或组织用户。焦点科技是一家以 B2B 外贸交易为主营业务的...

    Zilliz RDS
  • KubeSphere 3.1.0 GA:混合多云走向边缘,让应用无处不在

    2021 年 4 月 29 日,KubeSphere 开源社区激动地向大家宣布,KubeSphere 3.1.0 正式发布!为了帮助企业最大化资源利用效率,Ku...

    Jintao Zhang
  • KubeSphere 3.1.0 GA:混合多云走向边缘,让应用无处不在

    2021 年 4 月 29 日,KubeSphere 开源社区激动地向大家宣布,KubeSphere 3.1.0 正式发布!为了帮助企业最大化资源利用效率,Ku...

    iMike
  • Milvus 2.0 新版本一览:重新定义向量数据库

    2018 年 10 月,我们写下了向量数据库 Milvus 的第一行代码;在历经了 29 个月、19 个版本的迭代与全球 1000 家用户的实践验证后,终于在 ...

    Zilliz RDS
  • 小 Mil 来了!Milvus 智能问答机器人上线

    它究竟有什么功能,又是怎么实现的呢?今天我要带大家来了解这个基于 Milvus 的 FAQ 问答机器人-MilMil。

    Zilliz RDS
  • 相似视频搜索—Opera 的 Milvus 实践

    Opera 成立于 1995 年,总部位于挪威奥斯陆,是全球领先的浏览器提供商及数字内容发现和推荐平台领域的先驱。20 多年来,数百万名用户通过 Opera 网...

    Zilliz RDS
  • Milvus 实战|基于 Milvus 的图文检索系统

    1. 通过 TIRG(Text Image Residual Gating)模型将图片特征和文本特征转化为多模态特征向量。

    Zilliz RDS
  • 相似问答检索——汽车之家的 Milvus 实践

    汽车之家作为中国汽车互联网平台,拥有全球最大的汽车社区论坛。多年来积累了丰富的用户问答数据,能够解决用户在看车、买车、用车等方面遇到的各种问题。针对用户在平台上...

    Zilliz RDS
  • 拒绝「扼脖子」,Zilliz 打造国产开源基础软件样板

    内容概要:2020 年中美贸易摩擦频发,美国对中国的制裁从实物蔓延到了技术领域,降低对国外基础软件的依赖、寻求科技自主的风气盛行,国产基础软件从幕后走到台前,开...

    HyperAI超神经
  • 安装KubeSphere

    官方中文文档:https://kubesphere.io/docs/zh-CN/introduction/what-is-kubesphere/

    py3study
  • 拥抱云原生,Milvus v2.0 发布现场回顾 | 附Meetup讲师PPT和视频

    继今年 3 月发布 Milvus 1.0 版本,时隔 3 个月,Milvus 2.0 应云而生。

    Zilliz RDS
  • 海量数据中搜索精华价值:Milvus助力头部企业打造前沿AI搜索

    在今天这个大数据无处不在的时代,如何高效精确地对海量数据进行处理和分析,是摆在各行业头部企业与软件开发团队面前的重大挑战。传统的结构化、半结构化数据领域有着较为...

    深度学习与Python

扫码关注云+社区

领取腾讯云代金券