使用 Docker Compose 或 Helm 配置对象存储
Milvus 默认使用 MinIO 作为对象存储,但也支持使用 Amazon Simple Storage Service (S3) 作为 持久对象存储来存储日志和索引文件。本主题介绍了如何为 Milvus 配置 S3。如果您对 MinIO 满意,可以跳过此主题。
您可以使用 Docker Compose 或在 K8s 上配置 S3。
使用 Docker Compose 配置 S3
1. 配置 S3
MinIO 兼容 S3。要使用 Docker Compose 配置 S3,请在 milvus/configs 路径下的 milvus.yaml
文件中为 minio
部分提供您的值。
minio:
address: <your_s3_endpoint>
port: <your_s3_port>
accessKeyID: <your_s3_access_key_id>
secretAccessKey: <your_s3_secret_access_key>
useSSL: <true/false>
bucketName: "<your_bucket_name>"
更多信息请参阅 MinIO/S3 配置。
2. 优化 docker-compose.yaml
您还需要在 docker-compose.yaml
中为 milvus 服务删除 MINIO_ADDRESS
环境变量。默认情况下,milvus 将使用本地的 minio 而不是外部的 S3。
3. 运行 Milvus
运行以下命令启动使用 S3 配置的 Milvus。
docker compose up
配置仅在 Milvus 启动后生效。更多信息请参阅启动 Milvus。
在 K8s 上配置 S3
对于在 K8s 上的 Milvus 集群,您可以在启动 Milvus 的同一命令中配置 S3。或者,您可以在启动 Milvus 之前在 milvus-helm 仓库中的 /charts/milvus 路径下使用 values.yml
文件配置 S3。
以下表格列出了在 YAML 文件中配置 S3 的键。
键名 | 描述 | 值 |
---|---|---|
minio.enabled | 启用或禁用 MinIO。 | true /false |
externalS3.enabled | 启用或禁用 S3。 | true /false |
externalS3.host | 访问 S3 的端点。 | |
externalS3.port | 访问 S3 的端口。 | |
externalS3.rootPath | S3 存储的根路径。 | 默认为空字符串。 |
externalS3.accessKey | S3 的访问密钥 ID。 | |
externalS3.secretKey | S3 的秘密访问密钥。 | |
externalS3.bucketName | S3 存储桶的名称。 | |
externalS3.useSSL | 连接时是否使用 SSL | 默认值为 false |
使用 YAML 文件
- 在
values.yaml
文件中配置minio
部分。
minio:
enabled: false
- 在
values.yaml
文件中使用您的值配置externalS3
部分。
externalS3:
enabled: true
host: "<your_s3_endpoint>"
port: "<your_s3_port>"
accessKey: "<your_s3_access_key_id>"
secretKey: "<your_s3_secret_key>"
useSSL: <true/false>
bucketName: "<your_bucket_name>"
- 配置上述部分并保存
values.yaml
文件后,运行以下命令安装使用 S3 配置的 Milvus。
helm install <your_release_name> milvus/milvus -f values.yaml
使用命令
要安装 Milvus 并配置 S3,请使用以下命令并填入您的值。
helm install <your_release_name> milvus/milvus --set cluster.enabled=true --set minio.enabled=false --set externalS3.enabled=true --set externalS3.host=<your_s3_endpoint> --set externalS3.port=<your_s3_port> --set externalS3.accessKey=<your_s3_access_key_id> --set externalS3.secretKey=<your_s3_secret_key> --set externalS3.bucketName=<your_bucket_name>
接下来做什么
学习如何使用 Docker Compose 或 Helm 配置其他 Milvus 依赖项: