Skip to content

Deploy Milvus with External Components

Bennu edited this page Oct 18, 2021 · 2 revisions

Suppose you already have started MinIO, pulsar and Etcd services, and you want to use these existing services to deploy a Milvus cluster.

This document will teach you how to deploy a Milvus cluster based on the existing third-party components without starting new MinIO, pulsar and Etcd services.

When using helm to start the Milvus cluster, you need to modify the corresponding configuration in values.yaml. So we need to download values.yaml first.

wget https://raw.githubusercontent.com/milvus-io/milvus-helm/master/charts/milvus/values.yaml

Deploy Milvus with external MinIO

You can deploy Milvus with external Minio or S3 as storage by setting up these parameters as follows in values.yaml:

Parameter Description Value
minio.enable Enable or disable MinIO false
externalS3.enabled Enable or disable external S3/MinIO true
externalS3.host Endpoint of the external S3/MinIO
externalS3.port Port of the external S3/MinIO
externalS3.accessKey accessKey of the external S3/MinIO
externalS3.secretKey secretKey of the external S3/MinIO
externalS3.useSSL Enable or disable SSL
externalS3.bucketName S3 bucket name

For example:

minio:
  enabled: false

externalS3:
  enabled: true
  host: "127.0.0.1"
  port: "9000"
  accessKey: "minioadmin"
  secretKey: "minioadmin"
  useSSL: false
  bucketName: "milvus-1"

Note

You can use the same MinIO service to start multiple Milvus services, you only need to configure a different bucketName for each Milvus.

Deploy Milvus with external Etcd

To deploy Milvus with external Etcd, you need to modify these parameters as follow in value.yaml, so that disable to start a Etcd service when start the Milvus service, and use existing Etcd service.

Parameter Description Value
metadata.rootPath Root of key prefix to etcd
etcd.enable Enable or disable Etcd false
externalEtcd.enabled Enable or disable external Etcd true
externalEtcd.endpoints Endpoints of Etcd

For example:

metadata:
  rootPath: "by-dev"

etcd:
  enabled: false
  
externalEtcd:
  enabled: true
  endpoints:
    - 127.0.0.1:2379

Note:

You can use the same Etcd service to start multiple Milvus services, you only need to configure a different metadata.rootpath for each Milvus.

Deploy Milvus with external pulsar

To deploy Milvus with external pulsar, you need to modify these parameters as follow in value.yaml, so that disable to start a pulsar service when start the Milvus service, and use existing pulsar service

Parameter Description Value
msgChannel.chanNamePrefix.cluster The name prefix of the pulsar message channel
pulsar.enabled Enable or disable pulsar false
externalPulsar.enabled Enable or disable external pulsar true
externalPulsar.host host of pulsar
externalPulsar.port port of pulsar

For example:

msgChannel:
  chanNamePrefix:
    cluster: "by-dev"

pulsar:
  enabled: true

externalPulsar:
  enabled: false
  host: localhost
  port: 6650

Note:

You can use the same Pulsar service to start multiple Milvus services, you only need to configure a different msgChannel.chanNamePrefix.cluster for each Milvus.

Run Milvus cluster

After modify these parameters, you can run a Milvus cluster with helm.

helm install <release-name> milvus/milvus -f values.yaml