milvus-logo
LFAI
Home
  • Guia de Administração
    • Atualização

Atualizar o Milvus Standalone com o Milvus Operator

Este guia descreve como atualizar o seu Milvus standalone com o Milvus Operator.

Atualizar o seu Milvus Operator

Execute o seguinte comando para atualizar a versão do seu operador Milvus para a v1.0.1.

helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator

Depois de ter atualizado o seu Milvus operator para a versão mais recente, tem as seguintes opções:

Realizar uma atualização contínua

Desde a versão 2.2.3 do Milvus, é possível configurar os coordenadores do Milvus para funcionarem em modo de espera ativa e ativar a funcionalidade de atualização contínua para os mesmos, de modo a que o Milvus possa responder aos pedidos recebidos durante as actualizações dos coordenadores. Nas versões anteriores, os coordenadores devem ser removidos e depois criados durante uma atualização, o que pode provocar um certo tempo de inatividade do serviço.

Com base nas capacidades de atualização contínua fornecidas pela Kubernetes, o operador do Milvus impõe uma atualização ordenada das implementações de acordo com as suas dependências. Além disso, o Milvus implementa um mecanismo para garantir que os seus componentes permanecem compatíveis com os que deles dependem durante a atualização, reduzindo significativamente o potencial tempo de inatividade do serviço.

A funcionalidade de atualização contínua está desactivada por defeito. É necessário activá-la explicitamente através de um ficheiro de configuração.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingUpgrade # Default value, can be omitted
    image: milvusdb/milvus:v2.5.0-beta

Neste ficheiro de configuração acima, defina spec.components.enableRollingUpdate para true e defina spec.components.image para a versão desejada do Milvus.

Por predefinição, o Milvus efectua uma atualização contínua para os coordenadores de forma ordenada, substituindo as imagens do pod do coordenador uma após a outra. Para reduzir o tempo de atualização, considere definir spec.components.imageUpdateMode como all para que o Milvus substitua todas as imagens de pod ao mesmo tempo.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: all
    image: milvusdb/milvus:v2.5.0-beta

Você pode definir spec.components.imageUpdateMode como rollingDowngrade para que o Milvus substitua as imagens do pod coordenador por uma versão inferior.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingDowngrade
    image: milvusdb/milvus:<some-older-version>

Em seguida, salve sua configuração como um arquivo YAML (por exemplo, milvusupgrade.yml) e faça o patch desse arquivo de configuração para sua instância do Milvus da seguinte forma:

kubectl patch -f milvusupgrade.yml

Atualizar o Milvus alterando sua imagem

Em casos normais, pode simplesmente atualizar o seu Milvus para a versão mais recente, alterando a sua imagem. No entanto, tenha em atenção que haverá um certo tempo de inatividade ao atualizar o Milvus desta forma.

Crie um ficheiro de configuração da seguinte forma e guarde-o como milvusupgrade.yaml:

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
    name: my-release
labels:
    app: milvus
spec:
  # Omit other fields ...
  components:
   image: milvusdb/milvus:v2.5.0-beta

Em seguida, execute o seguinte para realizar a atualização:

kubectl patch -f milvusupgrade.yaml

Migrar os metadados

Desde o Milvus 2.2.0, os metadados são incompatíveis com os das versões anteriores. Os seguintes exemplos assumem uma atualização do Milvus 2.1.4 para o Milvus v2.5.0-beta.

1. Criar um ficheiro .yaml para migração de metadados

Crie um ficheiro de migração de metadados. Segue-se um exemplo. É necessário especificar name, sourceVersion e targetVersion no ficheiro de configuração. O exemplo seguinte define name para my-release-upgrade, sourceVersion para v2.1.4, e targetVersion para v2.5.0-beta. Isto significa que a sua instância Milvus será actualizada da v2.1.4 para a v2.5.0-beta.

apiVersion: milvus.io/v1beta1
kind: MilvusUpgrade
metadata:
  name: my-release-upgrade
spec:
  milvus:
    namespace: default
    name: my-release
  sourceVersion: "v2.1.4"
  targetVersion: "v2.5.0-beta"
  # below are some omit default values:
  # targetImage: "milvusdb/milvus:v2.5.0-beta"
  # toolImage: "milvusdb/meta-migration:v2.2.0"
  # operation: upgrade
  # rollbackIfFailed: true
  # backupPVC: ""
  # maxRetry: 3

2. Aplicar a nova configuração

Execute o seguinte comando para aplicar a nova configuração.

$ kubectl create -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvusupgrade.yaml

3. Verificar o estado da migração de metadados

Execute o seguinte comando para verificar o estado da migração de metadados.

kubectl describe milvus release-name

O estado de ready na saída significa que a migração de metadados foi bem sucedida.

Ou pode também executar kubectl get pod para verificar todos os pods. Se todos os pods forem ready, a migração de metadados será bem-sucedida.

4. Eliminar my-release-upgrade

Quando a atualização for bem sucedida, elimine my-release-upgrade no ficheiro YAML.

Traduzido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?