Configure Meta Storage with Docker Compose or Helm
Milvus uses etcd for storing metadata. This topic introduces how to configure etcd with Docker Compose or Helm.
Configure etcd with Docker Compose
1. Configure etcd
To configure etcd with Docker Compose, provide your values for the etcd section in the milvus.yaml file on the milvus/configs path.
etcd:
endpoints:
- localhost:2379
rootPath: by-dev # The root path where data are stored in etcd
metaSubPath: meta # metaRootPath = rootPath + '/' + metaSubPath
kvSubPath: kv # kvRootPath = rootPath + '/' + kvSubPath
log:
# path is one of:
# - "default" as os.Stderr,
# - "stderr" as os.Stderr,
# - "stdout" as os.Stdout,
# - file path to append server logs to.
# please adjust in embedded Milvus: /tmp/milvus/logs/etcd.log
path: stdout
level: info # Only supports debug, info, warn, error, panic, or fatal. Default 'info'.
use:
# please adjust in embedded Milvus: true
embed: false # Whether to enable embedded Etcd (an in-process EtcdServer).
data:
# Embedded Etcd only.
# please adjust in embedded Milvus: /tmp/milvus/etcdData/
dir: default.etcd
See etcd-related Configurations for more information.
2. Run Milvus
Run the following command to start Milvus that uses the etcd configurations.
docker compose up
Configure etcd on K8s
For Milvus clusters on K8s, you can configure etcd in the same command that starts Milvus. Alternatively, you can configure etcd using the values.yml file on the /charts/milvus path in the milvus-helm repository before you start Milvus.
The following table lists the keys for configuring etcd in the YAML file.
| Key | Description | Value |
|---|---|---|
etcd.enabled | Enables or disables etcd. | true/false |
externalEtcd.enabled | Enables or disables external etcd. | true/false |
externalEtcd.endpoints | The endpoint to access etcd. |
Using the YAML file
- Configure the
etcdsection using your values in thevalues.yamlfile.
etcd:
enabled: false
- Configure the
externaletcdsection using your values in thevalues.yamlfile.
externalEtcd:
enabled: true
## the endpoints of the external etcd
endpoints:
- <your_etcd_IP>:2379
- After configuring the preceding sections and saving the
values.yamlfile, run the following command to install Milvus that uses the etcd configurations.
helm install <your_release_name> milvus/milvus -f values.yaml
Using a command
To install Milvus and configure etcd, run the following command using your values.
helm install <your_release_name> milvus/milvus --set cluster.enabled=true --set etcd.enabled=false --set externaletcd.enabled=true --set externalEtcd.endpoints={<your_etcd_IP>:2379}
What’s next
Learn how to configure other Milvus dependencies with Docker Compose or Helm: