Milvus Operator
ATTENTIONS: THE
MAIN
BRANCH MAY BE IN AN UNSTABLE OR EVEN BROKEN STATE DURING DEVELOPMENT.
Overview
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 milvuscluster 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.
Getting started
Deploy milvus operator
Install or upgrade to latest version with helm:
helm repo add milvus-operator https://milvus-io.github.io/milvus-operator/
helm repo update milvus-operator
helm -n milvus-operator upgrade --install milvus-operator milvus-operator/milvus-operator
Or with kubectl & raw manifests:
kubectl apply -f https://github.com/milvus-io/milvus-operator/v0.7.8/deploy/manifests/deployment.yaml
For more infomation Check Installation Instructions
Create milvus demo instance
kubectl apply -f https://raw.githubusercontent.com/milvus-io/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/milvus-io/milvus-operator/blob/main/config/samples
Versioning
Versions of the underlying components are listed below:
Components | Milvus | Pulsar / Kafka | Etcd | MinIO |
---|---|---|---|---|
Versions | v2.2.4 [1] |
2.8.2 / 3.1.0 | 3.5.5-2 | RELEASE.2022-03-17T06-34-49Z |
[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.
Compatibility With Milvus Releases
Milvus Versions | <=v2.0.0-rc8 | v2.0.0-pre-ga | >=v2.0.0 |
---|---|---|---|
Compatibility | ✖️ | ✔️ | ✔️ |
Compatibility With Milvus-Operator Earlier Releases
Milvus Operator Versions | <0.4.0 | >=0.4.0 |
---|---|---|
Compatibility | ✖️ | ✔️ |
Install / upgrade milvus-operator of a specific version
Use helm:
helm upgrade --install milvus-operator \
-n milvus-operator --create-namespace \
https://github.com/milvus-io/milvus-operator/releases/download/v0.7.8/milvus-operator-0.7.8.tgz
Or use kubectl & raw manifests:
kubectl apply -f https://raw.githubusercontent.com/milvus-io/milvus-operator/v0.7.8/deploy/manifests/deployment.yaml
Documentations
- Installation
- Install KinD for development
- Administration Guides:
- Milvus CRD Reference
- How it works