🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
    • Обновление

Обновление автономного Milvus с помощью диаграмм Helm

В этом руководстве описано, как обновить автономный Milvus с помощью диаграмм Milvus Helm.

Необходимые условия

  • Версия Helm >= 3.14.0
  • Версия Kubernetes >= 1.20.0

Начиная с версии Milvus-Helm chart 4.2.21, мы ввели зависимость от графика pulsar-v3.x. Для обратной совместимости, пожалуйста, обновите ваш helm до версии 3.14 или более поздней, и не забудьте добавить опцию --reset-then-reuse-values при использовании helm upgrade.

Проверка версии Milvus

Выполните следующие команды для проверки новых версий Milvus.

$ helm repo update
$ helm search repo zilliztech/milvus --versions

Репо Milvus Helm Charts по адресу https://milvus-io.github.io/milvus-helm/ было заархивировано, и вы можете получать дальнейшие обновления с https://zilliztech.github.io/milvus-helm/ следующим образом:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update zilliztech
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values

Архивное хранилище по-прежнему доступно для диаграмм до версии 4.0.31. Для более поздних выпусков используйте новое репо.

NAME                    CHART VERSION   APP VERSION             DESCRIPTION                                       
zilliztech/milvus       4.1.34          2.4.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.33          2.4.4                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.32          2.4.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.31          2.4.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.30          2.4.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.29          2.4.0                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.24          2.3.11                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.23          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.22          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.21          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.20          2.3.10                  Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.18          2.3.10                  Milvus is an open-source vector database built ... 
zilliztech/milvus       4.1.18          2.3.9                   Milvus is an open-source vector database built ...                                       
zilliztech/milvus       4.1.17          2.3.8                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.16          2.3.7                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.15          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.14          2.3.6                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.13          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.12          2.3.5                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.11          2.3.4                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.10          2.3.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.9           2.3.3                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.8           2.3.2                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.7           2.3.2                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.6           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.5           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.4           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.3           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.2           2.3.1                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.1           2.3.0                   Milvus is an open-source vector database built ...
zilliztech/milvus       4.1.0           2.3.0                   Milvus is an open-source vector database built ...

Вы можете выбрать путь обновления для своего Milvus следующим образом:

- [Провести скользящее обновление](#conduct-a-rolling-upgrade) с Milvus v2.2.3 и более поздних выпусков до v2.5.4.

Проведение скользящего обновления

Начиная с Milvus 2.2.3, вы можете настроить координаторы Milvus на работу в режиме активного ожидания и включить для них функцию скользящего обновления, чтобы Milvus мог отвечать на входящие запросы во время обновления координаторов. В предыдущих выпусках координаторы должны были удаляться, а затем создаваться во время обновления, что могло привести к некоторому простою службы.

Скользящие обновления требуют, чтобы координаторы работали в режиме активного ожидания. Вы можете использовать предоставленный нами сценарий для настройки координаторов на работу в режиме активного резерва и запуска скользящего обновления.

Основываясь на возможностях скользящего обновления, предоставляемых Kubernetes, приведенный выше сценарий обеспечивает упорядоченное обновление развертываний в соответствии с их зависимостями. Кроме того, Milvus реализует механизм, гарантирующий, что его компоненты останутся совместимыми с теми, которые зависят от них во время обновления, что значительно сокращает потенциальное время простоя сервисов.

Этот сценарий применяется только для обновления Milvus, установленного вместе с Helm. В следующей таблице перечислены флаги команд, доступные в сценариях.

ПараметрыОписаниеЗначение по умолчаниюТребуется
iИмя экземпляра MilvusNoneTrue
nПространство имен, в котором установлен MilvusdefaultЛожь
tЦелевая версия MilvusNoneTrue
wНовый тег изображения Milvusmilvusdb/milvus:v2.2.3True
oОперацияupdateЛожь

После того как вы убедились, что все развертывания в экземпляре Milvus находятся в нормальном состоянии. Вы можете выполнить следующую команду для обновления экземпляра Milvus до версии 2.5.4.

sh rollingUpdate.sh -n default -i my-release -o update -t 2.5.4 -w 'milvusdb/milvus:v2.5.4'
  1. Сценарий не применяется к экземпляру Milvus, установленному вместе с RocksMQ.
  2. Сценарий жестко кодирует порядок обновления развертываний и не может быть изменен.
  3. Сценарий использует kubectl patch для обновления развертываний и kubectl rollout status для отслеживания их состояния.
  4. Сценарий использует kubectl patch для обновления метки app.kubernetes.io/version развертывания на метку, указанную после флага -t в команде.

Обновление Milvus с помощью Helm

Чтобы обновить Milvus с минорного выпуска до v2.2.3 до последней версии, выполните следующие команды:

helm repo update
helm upgrade my-release milvus/milvus --reset-then-reuse-values --version=4.1.24 # use the helm chart version here

Используйте версию диаграммы Helm в предыдущей команде. Подробнее о том, как получить версию диаграммы Helm, см. в разделе Проверка версии Milvus.

Перенос метаданных

Начиная с Milvus 2.2.0, метаданные несовместимы с метаданными предыдущих выпусков. Следующие примеры фрагментов предполагают обновление с Milvus 2.1.4 до Milvus 2.2.0.

1. Проверьте версию Milvus

Запустите $ helm list, чтобы проверить версию приложения Milvus. Вы можете видеть, что APP VERSION - это 2.1.4.

NAME                NAMESPACE   REVISION    UPDATED                                 STATUS      CHART           APP VERSION     
my-release          default     1           2022-11-21 15:41:25.51539 +0800 CST     deployed    milvus-3.2.18   2.1.4

2. Проверьте запущенные подсистемы

Запустите $ kubectl get pods, чтобы проверить запущенные подсистемы. Вы можете увидеть следующий результат.

NAME                                            READY   STATUS    RESTARTS   AGE
my-release-etcd-0                               1/1     Running   0          84s
my-release-milvus-standalone-75c599fffc-6rwlj   1/1     Running   0          84s
my-release-minio-744dd9586f-qngzv               1/1     Running   0          84s

3. Проверьте тег изображения

Проверьте тег образа для стручка my-release-milvus-proxy-6c548f787f-scspp. Вы можете увидеть, что релиз вашего кластера Milvus - v2.1.4.

$ kubectl get pods my-release-milvus-proxy-6c548f787f-scspp -o=jsonpath='{$.spec.containers[0].image}'
# milvusdb/milvus:v2.1.4

4. Перенесите метаданные

Основным изменением в Milvus 2.2 является структура метаданных сегментных индексов. Поэтому при обновлении Milvus с v2.1.x до v2.2.0 необходимо использовать Helm для миграции метаданных. Ниже приведен сценарий для безопасной миграции метаданных.

Этот сценарий применим только к Milvus, установленному на кластере K8s. Если в процессе произойдет ошибка, сначала откатитесь к предыдущей версии с помощью операции отката.

В следующей таблице перечислены операции, которые можно выполнить для миграции метаданных.

ПараметрыОписаниеЗначение по умолчаниюТребуется
iИмя экземпляра Milvus.NoneTrue
nПространство имен, в котором установлен Milvus.defaultFalse
sИсходная версия Milvus.NoneTrue
tЦелевая версия Milvus.NoneTrue
rКорневой путь метафайла Milvus.by-devFalse
wНовый тег изображения Milvus.milvusdb/milvus:v2.2.0False
mТег изображения миграции мета.milvusdb/meta-migration:v2.2.0False
oОперация мета-миграции.migrateFalse
dУдалять ли капсулу миграции после завершения миграции.falseЛожь
cКласс хранения для pvc мета-миграции.default storage classFalse
eЭнпоинт etcd, используемый milvus.etcd svc installed with milvusFalse

1. Миграция метаданных

  1. Загрузите сценарий миграции.
  2. Остановите компоненты Milvus. Любой живой сеанс в Milvus etcd может привести к сбою миграции.
  3. Создайте резервную копию метаданных Milvus.
  4. Перенесите метаданные Milvus.
  5. Запустите компоненты Milvus с новым образом.

2. Обновление Milvus с версии 2.1.x до 2.5.4

Следующие команды предполагают, что вы обновляете Milvus с версии 2.1.4 до 2.5.4. Измените их на те версии, которые соответствуют вашим потребностям.

  1. Укажите имя экземпляра Milvus, исходную версию Milvus и целевую версию Milvus.

    ./migrate.sh -i my-release -s 2.1.4 -t 2.5.4
    
  2. Укажите пространство имен с помощью -n, если ваш Milvus установлен не в пространстве имен K8s по умолчанию.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4
    
  3. Укажите корневой путь с помощью -r, если ваш Milvus установлен с пользовательским rootpath.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4 -r by-dev
    
  4. Укажите тег изображения с помощью -w, если ваш Milvus установлен с пользовательским image.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4 -r by-dev -w milvusdb/milvus:v2.5.4
    
  5. Установите -d true, если вы хотите автоматически удалить миграционную капсулу после завершения миграции.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4 -w milvusdb/milvus:v2.5.4 -d true
    
  6. Откатитесь и выполните миграцию заново, если миграция не удалась.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4 -r by-dev -o rollback -w milvusdb/milvus:v2.1.1
    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.4 -r by-dev -o migrate -w milvusdb/milvus:v2.5.4
    

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?