Install Milvus Standalone with Helm
This topic describes how to install Milvus standalone with Helm on Kubernetes (K8s).
Prerequisites
Check the requirements for hardware and software prior to your installation.
Create a K8s cluster using minikube
We recommend installing Milvus on K8s with minikube, a tool that allows you to run K8s locally.
1. Install minikube
See install minikube for more information.
2. Start a K8s cluster using minikube
After installing minikube, run the following command to start a K8s cluster.
$ minikube start
3. Check the K8s cluster status
Run $ kubectl cluster-info
to check the status of the K8s cluster you just created. Ensure that you can access the K8s cluster via kubectl
. If you have not installed kubectl
locally, see Use kubectl inside minikube.
minikube has a dependency on default StorageClass when installed. Check the dependency by running the following command. Other installation methods require manual configuration of the StorageClass. See Change the Default StorageClass for more information.
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) k8s.io/minikube-hostpath Delete Immediate false 3m36s
Install Helm Chart for Milvus
Helm is a K8s package manager that can help you deploy Milvus quickly.
- Add Milvus to Helm’s repository.
$ helm repo add milvus https://milvus-io.github.io/milvus-helm/
- Update your local chart repository.
$ helm repo update
Start Milvus
Start Milvus with Helm by specifying the release name, the chart, and parameters you expect to change. This topic uses my-release
as the release name. To use a different release name, replace my-release
in the command.
$ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false
Check the status of the running pods.
$ kubectl get pods
After Milvus starts, the READY
column displays 1/1
for all pods.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 30s
my-release-milvus-standalone-54c4f88cb9-f84pf 1/1 Running 0 30s
my-release-minio-5564fbbddc-mz7f5 1/1 Running 0 30s
Connect to Milvus
Verify which local port the Milvus server is listening on. Replace the pod name with your own.
$ kubectl get pod my-release-milvus-standalone-54c4f88cb9-f84pf --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530
Open a new terminal and run the following command to forward a local port to the port that Milvus uses. Optionally, omit the designated port and use :19530
to let kubectl
allocate a local port for you so that you don’t have to manage port conflicts.
$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530
Uninstall Milvus
Run the following command to uninstall Milvus.
$ helm uninstall my-release
Stop the K8s cluster
Stop the cluster and the minikube VM without deleting the resources you created.
$ minikube stop
Run minikube start
to restart the cluster.
Delete the K8s cluster
$ kubectl logs `pod_name`
to get the stderr
log of the pod before deleting the cluster and all resources.
Delete the cluster, the minikube VM, and all resources you created including persistent volumes.
$ minikube delete
What’s next
Having installed Milvus, you can:
Check Hello Milvus to run an example code with different SDKs to see what Milvus can do.
Learn the basic operations of Milvus:
Explore MilvusDM, an open-source tool designed for importing and exporting data in Milvus.