Milvus 安装指南:Docker、Docker Compose 与 Kubernetes 部署方式
Milvus 支持 Docker、Docker Compose 和 Kubernetes 三种部署方式。介绍各模式的先决条件、安装步骤及验证方法。Docker 适合单机快速测试;Docker Compose 模拟分布式架构用于开发;Kubernetes 适用于生产环境高可用场景。涵盖资源规划、配置持久化及常见问题排查。

Milvus 支持 Docker、Docker Compose 和 Kubernetes 三种部署方式。介绍各模式的先决条件、安装步骤及验证方法。Docker 适合单机快速测试;Docker Compose 模拟分布式架构用于开发;Kubernetes 适用于生产环境高可用场景。涵盖资源规划、配置持久化及常见问题排查。

Milvus 提供了多种部署方式,包括 Docker(单机部署)、Docker Compose(单机多容器部署)以及 Kubernetes(分布式集群部署)。以下是对这三种安装方式的详细介绍,包括先决条件、步骤、配置文件和注意事项。
在安装 Milvus 之前,确保满足以下条件:
# 检查 Docker
docker --version
# 检查 Docker Compose
docker-compose --version
# 检查 kubectl
kubectl version --client
# 检查 Helm
helm version
Docker 部署是安装 Milvus 最简单的方式,适合快速测试或开发环境。
安装 Docker:
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
创建数据持久化目录:
mkdir -p ~/milvus/data ~/milvus/logs ~/milvus/configs
拉取 Milvus 镜像:
docker pull milvusdb/milvus:latest
运行 Milvus 容器:
docker run -d --name milvus_standalone \
-p 19530:19530 \
-p 9091:9091 \
-v ~/milvus/data:/var/lib/milvus \
-v ~/milvus/logs:/var/lib/milvus/logs \
-v ~/milvus/configs:/var/lib/milvus/configs \
milvusdb/milvus:latest
验证安装:
docker ps
确保 milvus_standalone 容器处于 Up 状态。pip install pymilvus
from pymilvus import MilvusClient
client = MilvusClient(uri="http://192.168.1.110:19530")
print(client.get_server_version())
如果返回版本号(如 2.5.x),说明安装成功。访问 Web 界面(可选):
http://localhost:9091。19530 和 9091 未被防火墙阻止。milvusdb/milvus:<tag> 指定版本。Docker Compose 部署将 Milvus 的组件拆分为多个容器,模拟分布式架构,适合需要更高性能的单机环境。
安装 Docker Compose:
sudo apt install -y docker-compose
下载配置文件:
wget https://github.com/milvus-io/milvus/releases/download/v2.4.0/milvus-standalone-docker-compose.yml -O docker-compose.yml
创建持久化目录:
mkdir -p volumes/etcd volumes/minio volumes/milvus
启动 Milvus:
docker-compose up -d
验证安装:
docker-compose ps
确保 milvus_standalone、milvus_etcd 和 milvus_minio 容器均运行正常。from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530")
print(client.get_version())
访问 MinIO(可选):
http://localhost:9001,使用默认凭据(minioadmin:minioadmin)登录。volumes 目录有足够磁盘空间。Kubernetes 部署适合生产环境或需要高可用性和可扩展性的场景。
准备 Kubernetes 集群:
minikube start --cpus 4 --memory 8192
安装 kubectl 和 Helm:
# 安装 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
# 安装 Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
添加 Milvus Helm 仓库:
helm repo add milvus https://milvus-io.github.io/milvus-helm-charts/
helm repo update
创建自定义值文件:
创建 values.yaml 文件,调整 Milvus 配置。
cluster:
enabled: true
etcd:
replicaCount: 3
minio:
mode: distributed
replicas: 4
milvus:
standalone:
enabled: false
proxy:
replicas: 2
querynode:
replicas: 4
datanode:
replicas: 2
resources:
limits:
cpu: "4"
memory: "16Gi"
requests:
cpu: "2"
memory: "8Gi"
persistence:
enabled: true
storageClass: "standard"
size: 50Gi
部署 Milvus:
helm install my-milvus milvus/milvus -f values.yaml
验证安装:
kubectl get svc
kubectl get pods
确保所有 Milvus 相关 Pod 处于 Running 状态。kubectl port-forward svc/my-milvus 19530:19530
然后使用 Python SDK 连接 http://<service-ip>:19530。docker logs <container_name> 或 kubectl logs <pod_name>,确认端口未被占用、磁盘空间充足。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online