Upgrade Milvus Cluster with Docker Compose
This topic describes how to upgrade your Milvus using Docker Compose.
In normal cases, you can upgrade Milvus by changing its image. However, you need to migrate the metadata before any upgrade from v2.1.x to v2.4.17.
Upgrade Milvus by changing its image
In normal cases, you can upgrade Milvus as follows:
Change the Milvus image tags in
docker-compose.yaml
.Note that you need to change the image tags for the Proxy, all coordinators, and all worker nodes.
... rootcoord: container_name: milvus-rootcoord image: milvusdb/milvus:v2.4.17 ... proxy: container_name: milvus-proxy image: milvusdb/milvus:v2.4.17 ... querycoord: container_name: milvus-querycoord image: milvusdb/milvus:v2.4.17 ... querynode: container_name: milvus-querynode image: milvusdb/milvus:v2.4.17 ... indexcoord: container_name: milvus-indexcoord image: milvusdb/milvus:v2.4.17 ... indexnode: container_name: milvus-indexnode image: milvusdb/milvus:v2.4.17 ... datacoord: container_name: milvus-datacoord image: milvusdb/milvus:v2.4.17 ... datanode: container_name: milvus-datanode image: milvusdb/milvus:v2.4.17
Run the following commands to perform the upgrade.
docker compose down docker compose up -d
Migrate the metadata
Stop all Milvus components.
docker stop <milvus-component-docker-container-name>
Prepare the configuration file
migrate.yaml
for meta migration.# migration.yaml cmd: # Option: run/backup/rollback type: run runWithBackup: true config: sourceVersion: 2.1.4 # Specify your milvus version targetVersion: 2.4.17 backupFilePath: /tmp/migration.bak metastore: type: etcd etcd: endpoints: - milvus-etcd:2379 # Use the etcd container name rootPath: by-dev # The root path where data is stored in etcd metaSubPath: meta kvSubPath: kv
Run the migration container.
# Suppose your docker-compose run with the default milvus network, # and you put migration.yaml in the same directory with docker-compose.yaml. docker run --rm -it --network milvus -v $(pwd)/migration.yaml:/milvus/configs/migration.yaml milvus/meta-migration:v2.2.0 /milvus/bin/meta-migration -config=/milvus/configs/migration.yaml
Start Milvus components again with the new Milvus image.
Update the milvus image tag in the docker-compose.yaml docker compose down docker compose up -d
What’s next
- You might also want to learn how to:
- If you are ready to deploy your cluster on clouds:
- Learn how to Deploy Milvus on Amazon EKS with Terraform
- Learn how to Deploy Milvus Cluster on GCP with Kubernetes
- Learn how to Deploy Milvus on Microsoft Azure With Kubernetes