milvus-operator

milvus-operator

View on GitHub

Install with helm

The installation guide documented here help you deploy Milvus operator stack with helm, which is the recommended way.

Prerequisites

  1. Kubernetes cluster (v1.19+) is running.
  2. Helm is installed.

Installation

For quick start, install with one line command:

helm 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

If you already have cert-manager v1.0+ installed which is not in its default configuration, you may encounter some error with the check of cert-manager installation. you can install with special options to disable the check:

helm 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 \
  --set checker.disableCertManagerCheck=true

Check installation & do update

use helm commands to check installation:

# list installations
helm -n milvus-operator list
# get values configuratins
helm -n milvus-operator get values milvus-operator

use helm commands to upgrade earlier milvus-operator to current version:

helm upgrade -n milvus-operator milvus-operator --reuse-values \
  https://github.com/milvus-io/milvus-operator/releases/download/v0.7.8/milvus-operator-0.7.8.tgz

Delete operator

Delete the milvus operator stack by helm

helm uninstall milvus-operator -n milvus-operator

Install with deployment manifest

If you don’t want to use helm you can also install with kubectl and raw manifests.

Prerequisites

  1. Kubernetes cluster (v1.19+) is running.
  2. cert-manager(optional) (v1.0+) is installed in cert-manager namespace with default config.
  3. kubectl with a proper version(v1.19+) is installed.
  4. git (optional) is installed.

Installation

It is recommended to install the milvus operator with a newest stable version

kubectl apply -f https://github.com/milvus-io/milvus-operator/v0.7.8/deploy/manifests/deployment.yaml

Check the installed operators:

kubectl get pods -n milvus-operator

Output:

NAME                                                  READY   STATUS    RESTARTS   AGE
milvus-operator-698fc7dc8d-8f52d   1/1     Running   0          65s

Update operator

Same as installation, you can update the milvus operator with a newer version by applying the new deployment manifest

Delete operator

Delete the milvus operator stack by the deployment manifest:

kubectl delete -f https://github.com/milvus-io/milvus-operator/v0.7.8/deploy/manifests/deployment.yaml

Or delete the milvus operator stack by using makefile:

make undeploy

Deploy a demo Milvus instance

Deploy a Milvus standalone demo

kubectl apply -f https://raw.githubusercontent.com/milvus-io/milvus-operator/main/config/samples/demo.yaml

Deploy a Milvus cluster demo

kubectl apply -f https://raw.githubusercontent.com/milvus-io/milvus-operator/main/config/samples/cluster_demo.yaml

Wait for the Milvus instance to be ready.

You can check the status by running:

kubectl wait --for=condition=MilvusReady  milvus/my-release --timeout 10m

If it’s ready, you should see the following output:

milvus.milvus.io/my-release condition met

Access your Milvus instance

Find the external IP of your Milvus instance by running:

kubectl get service

The output should look like this:

NAME               TYPE          CLUSTER-IP     EXTERNAL-IP    PORT(S)                         AGE
my-release-milvus  LoadBalancer  10.101.144.12  10.100.31.101  19530:31309/TCP,9091:30197/TCP  10m

The EXTERNAL-IP is the IP address of your Milvus instance. You can use this IP address to access your Milvus instance.

Follow the Hello Milvus Guide

Remember to change the host parameter to your EXTERNAL-IP of your Milvus instance. The connect to server code should be likeconnections.connect("default", host="10.100.31.101", port="19530") in my case.

What’s next

Install Kind for Development

For local development purpose, check Kind installation.