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
Before installing Milvus, confirm that your cluster is reachable and has the Node types required for the deployment.-
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
In this step, you install the Milvus Operator and prepare the CoreWeave Milvus Helm chart with your Object Storage and indexing settings.-
Install the Milvus Operator. See the Operator installation guide for more details.
This installs the Milvus Custom Resource Definition (CRD), which defines Milvus clusters, along with the Operator that manages them. It creates a new namespace called
milvus-operatorfor the Operator itself. You can addmilvus-operatoras a dependency to the CoreWeave chart (which you’ll download in the next step), but installing it in a separate namespace from the database is preferred. 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: Replace[BUCKET-NAME]with the name of your Object Storage bucket, and replace[ACCESS-KEY]and[SECRET-KEY]with your Object Storage credentials.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 schedules the relevant components on GPU Nodes as shown.
Chart defaults
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.
-
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 through values invalues.yaml. If you don’t specify a bucket name and credentials for backups, the ones specified for the database are used. Replace[BACKUP-BUCKET-NAME]with the name of your backup bucket, and replace[BACKUP-ACCESS-KEY]and[BACKUP-SECRET-KEY]with the credentials for that bucket.
Step 3. Install the chart
With the Operator running andvalues.yaml configured, install the CoreWeave Milvus chart to create the Milvus custom resource and provision the database.
-
Change to the chart directory:
-
Install the chart in a new namespace, for example
milvus: -
Check the status of the custom resource. This might take several minutes to complete, as the Operator sets up the database and its dependencies.
The
Conditionsblock shows the status of individual components. After 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. At this point, your Milvus cluster is deployed on CKS, backed by CoreWeave AI Object Storage, and ready for you to create collections and load data.