/milvus-operator

milvus-operator

Primary LanguageGoApache License 2.0Apache-2.0

Milvus Operator

CI Pipeline codecov Go Reference license

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.12/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.8 [1] 2.8.2 / 3.1.0 3.5.5-2 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.

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.12/milvus-operator-0.7.12.tgz

Or use kubectl & raw manifests:

kubectl apply -f https://raw.githubusercontent.com/milvus-io/milvus-operator/v0.7.12/deploy/manifests/deployment.yaml

Documentations