milvus/deployments/upgrade
Sheldon 7c49530349
script for rolling update milvus's componet which installed by helm (#21820)
script for rolling update milvus's componet which installed by helm
1. only support simple upgrade now,will upgrade the component in a safe order
2. won't keep old version information and don't support rollback now
3. the topology is hard-coded now
4. will patch instance's configmap and turn on standby mode
5. will patch instance's update strategy to rollingUpdate mode
6. not support milvus standalone with rocksmp

Signed-off-by: Sheldon <chuanfeng.liu@zilliz.com>
2023-02-13 16:58:33 +08:00
..
README.md script for rolling update milvus's componet which installed by helm (#21820) 2023-02-13 16:58:33 +08:00
rollingUpdate.sh script for rolling update milvus's componet which installed by helm (#21820) 2023-02-13 16:58:33 +08:00

README

Overview

Milvus 2.2.3 supports rolling update. This script helps you to perform a rolling update with zero downtime.

Note:

  1. Milvus version must be after 2.2.0.
  2. This script only applies to update Milvus installed with Helm and does not apply to Milvus installed with Milvus Operator.
  3. This script only supports update operation now.
  4. Rolling update is not supported in Milvus standalone with RocksMQ.

Parameters

Parameters Description Default value Required
i The Milvus instance name. None True
n The namespace that Milvus is installed in. default False
t The target Milvus version. None True
w The new Milvus image tag. milvusdb/milvus:v2.2.3 True
o The operation. update False

Overview of update procedures

  1. Check all deployments of the Milvus instance. Make sure no deployment is blocked.
  2. Update the deployments one by one. The update order is hard-coded for now.
  3. Specify the namespace, Milvus instance name, target Milvus version, and target image in the script.
  4. Run the script. The following script updates Milvus to 2.2.3.
sh rollingUpdate.sh -n default -i my-release -o update -t 2.2.3 -w 'milvusdb/milvus:v2.2.3'

Note

  1. This script update the deployment by kubectl patch and watch the deployment's status by kubectl rollout status.
  2. The target version is the deployment's label app.kubernetes.io/version and is updated by kubectl patch.