milvus-logo
LFAI
Home
  • Get Started

Requirements for running Milvus on Kubernetes

This page lists the hardware and software requirements to get Milvus up and running.

Hardware requirements

ComponentRequirementRecommendationNote
CPU
  • Intel 2nd Gen Core CPU or higher
  • Apple Silicon
  • Standalone: 4 core or more
  • Cluster: 8 core or more
CPU instruction set
  • SSE4.2
  • AVX
  • AVX2
  • AVX-512
  • SSE4.2
  • AVX
  • AVX2
  • AVX-512
Vector similarity search and index building within Milvus require CPU's support of single instruction, multiple data (SIMD) extension sets. Ensure that the CPU supports at least one of the SIMD extensions listed. See CPUs with AVX for more information.
RAM
  • Standalone: 8G
  • Cluster: 32G
  • Standalone: 16G
  • Cluster: 128G
The size of RAM depends on the data volume.
Hard driveSATA 3.0 SSD or CloudStorageNVMe SSD or higherThe size of hard drive depends on the data volume.

Software requirements

It is recommended that you run the Kubernetes cluster on Linux platforms.

kubectl is the command-line tool for Kubernetes. Use a kubectl version that is within one minor version difference of your cluster. Using the latest version of kubectl helps avoid unforeseen issues.

minikube is required when running Kubernetes cluster locally. minikube requires Docker as a dependency. Ensure that you install Docker before installing Milvus using Helm. See Get Docker for more information.

Operating systemSoftwareNote
Linux platforms
  • Kubernetes 1.16 or later
  • kubectl
  • Helm 3.0.0 or later
  • minikube (for Milvus standalone)
  • Docker 19.03 or later (for Milvus standalone)
See Helm Docs for more information.
SoftwareVersionNote
etcd3.5.0See additional disk requirements.
MinIORELEASE.2023-03-20T20-16-18Z
Pulsar2.8.2

Additional disk requirements

Disk performance is critical to etcd. It is highly recommended that you use local NVMe SSDs. Slower disk reponse may cause frequent cluster elections that will eventually degrade the etcd service.

To test if your disk is qualified, use fio.

mkdir test-data
fio --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=2200m --bs=2300 --name=mytest

Ideally, your disk should reach over 500 IOPS and below 10ms for the 99th percentile fsync latency. Read the etcd Docs for more detailed requirements.

FAQs

How can I start a K8s cluster locally for test purposes?

You can use tools like minikube, kind, and Kubeadm, to quickly set up a Kubernetes cluster locally. The following procedure uses minikube as an example.

  1. Download minikube

Go to the Get Started page, check whether you have met the conditions listed in the What you'll need section, click on the buttons that describe your target platform, and copy the commands to download and install the binary.

  1. Start a K8s cluster using minikube
$ minikube start
  1. Check the status of the K8s cluster

You can check the status of the K8s cluster installed using the following command.

$ kubectl cluster-info

Ensure that you can access the K8s cluster via kubectl. If you have not installed kubectl locally, see Use kubectl inside minikube.

What's next

Feedback

Was this page helpful?