Requirements for running Milvus on Kubernetes
This page lists the hardware and software requirements to get Milvus up and running.
Hardware requirements
Component | Requirement | Recommendation | Note |
---|---|---|---|
CPU |
|
| |
CPU instruction set |
|
| 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 |
|
| The size of RAM depends on the data volume. |
Hard drive | SATA 3.0 SSD or CloudStorage | NVMe SSD or higher | The 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 system | Software | Note |
---|---|---|
Linux platforms |
| See Helm Docs for more information. |
Software | Version | Note |
---|---|---|
etcd | 3.5.0 | See additional disk requirements. |
MinIO | RELEASE.2023-03-20T20-16-18Z | |
Pulsar | 2.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.
- 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.
- Start a K8s cluster using minikube
$ minikube start
- 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
If your hardware and software meet the requirements, you can:
See System Configuration for parameters you can set while installing Milvus.