ATTENTIONS: THE
MAIN
BRANCH MAY BE IN AN UNSTABLE OR EVEN BROKEN STATE DURING DEVELOPMENT.
Milvus is a cloud-native, open-source vector database built to manage embedding vectors generated by machine learning models and neural networks. It extends the capabilities of best-in-class approximate nearest neighbor (ANN) search libraries (e.g. Faiss, NMSLIB, Annoy) and features on-demand scalability, and high availability.
The Milvus Operator provides an easy and solid solution to deploy and manage a full Milvus service stack including both the milvus components and its relevant dependencies such as etcd, pulsar and minio to the target Kubernetes clusters in a scalable and high-available way. The Milvus Operator defines a Milvus
custom resources on top of Kubernetes Custom Resources. The Kubernetes API can then be used in a declarative way to manage Milvus deployment stack and ensure its scalability and high-availability operation.
In general, Milvus Operator is recommanded for production. Helm is recommanded for beginners.
Milvus Operator provides more features for production. But you need to install it in your kubernetes before you start your first Milvus instance. If you are new to Milvus and Kubernetes. Helm is easier to use and you can start your first Milvus instance in minutes.
For more details, please check the table below:
Advantages | Milvus Operator | Milvus Helm |
---|---|---|
Recommended for Beginners | ✅ | |
Quick Start | ✅ | |
Recommended for Production | ✅ | |
Better Managed Rolling Upgrade | ✅ | |
Dynamic Configuration Reload | ✅ | |
Health Check Metrics | ✅ | |
Diagnose Message When Unhealthy | ✅ | |
Quick Suspend Running Instance | ✅ | |
Cleanup Resources after Deletion | ✅ |
Install or upgrade to latest version with helm:
helm repo add milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update milvus-operator
helm -n milvus-operator upgrade --install --create-namespace milvus-operator milvus-operator/milvus-operator
Or with kubectl & raw manifests:
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/v1.1.2/deploy/manifests/deployment.yaml
For more infomation Check Installation Instructions
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/demo.yaml
Note: The demo instance starts a standalone milvus & its dependencies with the least resources requests. It is not suitable for production environment. For more deployment examples please check https://github.com/zilliztech/milvus-operator/blob/main/config/samples
Versions of the underlying components are listed below:
Components | Milvus | Pulsar / Kafka | Etcd | MinIO |
---|---|---|---|---|
Versions | v2.4.15 [1] |
2.9.5[2] / 3.1.0 |
3.5.14 | RELEASE.2023-03-20T20-16-18Z |
[1]
Version of milvus is the default version we will use, you can set it to other version. The Compatibility with milvus releases is showed below.
[2]
pulsar of 3.x is also supported. check this sample for more details.
Milvus Versions | <=v2.0.0-rc8 | v2.0.0-pre-ga | >=v2.0.0 |
---|---|---|---|
Compatibility | ❌ | ✅ | ✅ |
Milvus Operator Versions | <0.4.0 | >=0.4.0 |
---|---|---|
Compatibility | ❌ | ✅ |
Use helm:
helm upgrade --install milvus-operator \
-n milvus-operator --create-namespace \
https://github.com/zilliztech/milvus-operator/releases/download/v1.1.2/milvus-operator-1.1.2.tgz
Or use kubectl & raw manifests:
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/v1.1.2/deploy/manifests/deployment.yaml