These instructions explain how to deploy Milvus, an open-source vector database built for GenAI applications, on CoreWeave Kubernetes Service (CKS).Documentation Index
Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you start, you need:- A working CKS cluster with at least one CPU Node. GPU Nodes are also supported, but CPU Nodes are preferred unless you plan to use GPU-based indexing.
- Access Key and Secret Key with permissions to use a CoreWeave AI Object Storage bucket.
Step 1. Verify your system configuration
-
Verify that you can access your cluster with
kubectl. For example:You should see something similar to: -
Verify your cluster has at least one CPU Node. GPU Nodes are also supported, but CPU Nodes are preferred unless you plan to use GPU-based indexing. For example:
You should see something similar to the following:
Step 2. Deploy Milvus
-
Install the Milvus Operator. See the Operator installation guide for more details.
This installs the Milvus Custom Resource Definition (CRD), which is used to define Milvus clusters, along with the Operator that manages them. It creates a new namespace called
milvus-operatorfor the Operator itself. It’s possible to addmilvus-operatoras a dependency to the CoreWeave chart (which you’ll download in the next step), but it’s preferred to install it in a separate namespace from the database. The Operator can manage multiple Milvus clusters in different namespaces. - Clone the CoreWeave Milvus chart repository at: https://github.com/coreweave/reference-architecture/tree/main/tooling/vector_dbs/cw-milvus
-
Edit the chart’s
values.yamlwith your details:Check the deleteDependencies policyThis chart automatically deletes dependencies likeetcdandkafkaby default. This makes it easier to clean up after an experiment is complete.You should setdeleteDependenciestofalseif you want to retain these dependencies after deleting the Milvus custom resource. -
If you plan to use GPU-based indexing, set the
gpuIndexingvalue totrueinvalues.yaml. This will schedule the relevant components on GPU Nodes as shown.
Chart defaults explained
The CoreWeave chart handles the following items:-
It provisions a secret with the Object Storage credentials you specified in
values.yaml. -
It configures the Object Storage bucket you specified, with
aliyunas the provider. This ensures that Milvus uses virtual-host style addressing. -
It sets the storage type to
S3and uses the CoreWeave AI Object Storage endpoint (cwobject.com:443). -
It configures Kafka as the message storage service and overrides the default image (which is not yet available).
-
It sets Node affinities for the Milvus components to CPU Nodes. However, scheduling onto GPU Nodes is also possible when using GPU-based indexing as described in Step 2.
-
It configures a
CronJobfor backup using milvus-backup. You can control the cron expression for scheduling the job, as well as settings for the backup bucket via values invalues.yaml. If you do not specify a bucket name and credentials for backups, the ones specified for the database are used.
Step 3. Install the chart
-
Change to the chart directory:
-
Install the chart in a new namespace, e.g.
milvus: -
Check the status of the custom resource. This may take several minutes to complete, as the Operator sets up the database and its dependencies.
The
Conditionsblock will show the status of individual components. Once everything is set up, that block should look like this:
Step 4. Access the database
After the database is ready, the web UI service is available on port 9091, and the database service is available on port 19530. To access these, forward local ports from your machine to the service.-
Forward a local port to the database service.
-
Forward a local port to the web UI service.
http://localhost:27018 and connect to the database at localhost:27017.