milvus-logo
LFAI
Home
  • Get Started

Environment Checklist for Milvus on Kubernetes

Before you install Milvus, check your hardware and software to see if they meet the requirements.

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.

What's next