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

Atualizar o Cluster Milvus com o Gráfico Helm

Este guia descreve como atualizar seu cluster Milvus com gráficos do Milvus Helm.

Pré-requisitos

  • Versão do Helm >= 3.14.0
  • Versão do Kubernetes >= 1.20.0

Desde a versão 4.2.21 do gráfico Milvus-Helm, introduzimos o gráfico pulsar-v3.x como dependência. Para compatibilidade com versões anteriores, atualize seu helm para a versão v3.14 ou posterior, e certifique-se de adicionar a opção --reset-then-reuse-values sempre que usar helm upgrade.

Verificar a carta do Milvus Helm

Execute os seguintes comandos para verificar as novas versões do Milvus.

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

O repositório Milvus Helm Charts em https://milvus-io.github.io/milvus-helm/ foi arquivado e pode obter mais actualizações em https://zilliztech.github.io/milvus-helm/ da seguinte forma:

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

O repositório arquivado ainda está disponível para os gráficos até à versão 4.0.31. Para versões posteriores, utilize o novo repositório.

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 ...

Pode escolher o caminho de atualização para o seu Milvus da seguinte forma:

- [Conduzir uma atualização contínua](#conduct-a-rolling-upgrade) do Milvus v2.2.3 e versões posteriores para a v2.5.0-beta.

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.

As actualizações contínuas requerem que os coordenadores trabalhem em modo de espera ativa. Pode utilizar o script que fornecemos para configurar os coordenadores para trabalharem em modo de espera ativa e iniciar a atualização contínua.

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

O script aplica-se apenas à atualização do Milvus instalado com o Helm. A tabela seguinte lista as flags de comando disponíveis nos scripts.

ParâmetrosDescriçãoValor por defeitoNecessário
iNome da instância MilvusNoneVerdadeiro
nEspaço de nomes em que o Milvus está instaladodefaultFalso
tVersão alvo do MilvusNoneVerdadeiro
wNova etiqueta de imagem do Milvusmilvusdb/milvus:v2.2.3Verdadeiro
oFuncionamentoupdateFalso

Depois de ter assegurado que todas as implementações na sua instância Milvus estão no seu estado normal. Pode executar o seguinte comando para atualizar a instância do Milvus para a versão 2.5.0-beta.

sh rollingUpdate.sh -n default -i my-release -o update -t 2.5.0-beta -w 'milvusdb/milvus:v2.5.0-beta'
  1. O script codifica a ordem de atualização das implementações e não pode ser alterado.
  2. O script utiliza kubectl patch para atualizar as implementações e kubectl rollout status para observar o seu estado.
  3. O script usa kubectl patch para atualizar a etiqueta app.kubernetes.io/version das implementações para a especificada após a bandeira -t no comando.

Atualizar o Milvus usando o Helm

Para atualizar o Milvus de uma versão menor antes da v2.2.3 para a mais recente, execute os seguintes comandos:

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

Use a versão do Helm chart no comando anterior. Para obter detalhes sobre como obter a versão do Helm chart, consulte Verificar a versão do Milvus.

Migrar os metadados

Desde o Milvus 2.2.0, os metadados são incompatíveis com os das versões anteriores. Os exemplos a seguir pressupõem uma atualização do Milvus 2.1.4 para o Milvus 2.2.0.

1. Verificar a versão do Milvus

Execute $ helm list para verificar a versão da sua aplicação Milvus. Pode ver que APP VERSION é 2.1.4.

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

2. Verificar os pods em execução

Execute $ kubectl get pods para verificar os pods em execução. Pode ver o seguinte resultado.

NAME                                             READY   STATUS      RESTARTS   AGE
my-release-etcd-0                               1/1     Running     0          21m
my-release-etcd-1                               1/1     Running     0          21m
my-release-etcd-2                               1/1     Running     0          21m
my-release-milvus-datacoord-664c58798d-fl75s    1/1     Running     0          21m
my-release-milvus-datanode-5f75686c55-xfg2r     1/1     Running     0          21m
my-release-milvus-indexcoord-5f98b97589-2l48r   1/1     Running     0          21m
my-release-milvus-indexnode-857b4ddf98-vmd75    1/1     Running     0          21m
my-release-milvus-proxy-6c548f787f-scspp        1/1     Running     0          21m
my-release-milvus-querycoord-c454f44cd-dwmwq    1/1     Running     0          21m
my-release-milvus-querynode-76bb4946d-lbrz6     1/1     Running     0          21m
my-release-milvus-rootcoord-7764c5b686-62msm    1/1     Running     0          21m
my-release-minio-0                              1/1     Running     0          21m
my-release-minio-1                              1/1     Running     0          21m
my-release-minio-2                              1/1     Running     0          21m
my-release-minio-3                              1/1     Running     0          21m
my-release-pulsar-bookie-0                      1/1     Running     0          21m
my-release-pulsar-bookie-1                      1/1     Running     0          21m
my-release-pulsar-bookie-2                      1/1     Running     0          21m
my-release-pulsar-bookie-init-tjxpj             0/1     Completed   0          21m
my-release-pulsar-broker-0                      1/1     Running     0          21m
my-release-pulsar-proxy-0                       1/1     Running     0          21m
my-release-pulsar-pulsar-init-c8vvc             0/1     Completed   0          21m
my-release-pulsar-recovery-0                    1/1     Running     0          21m
my-release-pulsar-zookeeper-0                   1/1     Running     0          21m
my-release-pulsar-zookeeper-1                   1/1     Running     0          20m
my-release-pulsar-zookeeper-2                   1/1     Running     0          20m

3. Verificar a etiqueta de imagem

Verifique a etiqueta de imagem para o pod my-release-milvus-proxy-6c548f787f-scspp. Pode ver que a versão do seu cluster Milvus é a v2.1.4.

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

4. Migrar os metadados

Uma grande mudança no Milvus 2.2 é a estrutura de metadados dos índices de segmento. Por conseguinte, é necessário utilizar o Helm para migrar os metadados durante a atualização do Milvus da v2.1.x para a v2.2.0. Eis um script para migrar os metadados em segurança.

Este script só se aplica ao Milvus instalado em um cluster K8s. Se ocorrer um erro durante o processo, reverta primeiro para a versão anterior com a operação de reversão.

A tabela seguinte lista as operações que pode efetuar para a meta-migração.

ParâmetrosDescriçãoValor por defeitoNecessário
iO nome da instância Milvus.NoneVerdadeiro
nO espaço de nomes em que o Milvus está instalado.defaultFalso
sA versão de origem do Milvus.NoneVerdadeiro
tA versão de destino do Milvus.NoneVerdadeiro
rO caminho da raiz do meta Milvus.by-devFalso
wA nova etiqueta de imagem do Milvus.milvusdb/milvus:v2.2.0Falso
mA etiqueta de imagem da meta-migração.milvusdb/meta-migration:v2.2.0Falso
oA operação de meta-migração.migrateFalso
dSe deve ser eliminado o pod de migração após a conclusão da migração.falseFalso
cA classe de armazenamento para o pvc de metamigração.default storage classFalso
eO ponto de acesso etcd utilizado pelo milvus.etcd svc installed with milvusFalso

1. Migrar os metadados

  1. Descarregar o script de migração.
  2. Parar os componentes do Milvus. Qualquer sessão em direto no Milvus etcd pode causar uma falha na migração.
  3. Crie uma cópia de segurança para os metadados do Milvus.
  4. Migrar os metadados do Milvus.
  5. Inicie os componentes do Milvus com uma nova imagem.

2. Atualizar o Milvus da v2.1.x para a 2.2.0

Os comandos a seguir assumem que você atualizou o Milvus da v2.1.4 para a 2.2.0. Altere-os para as versões que atendam às suas necessidades.

  1. Especifique o nome da instância do Milvus, a versão do Milvus de origem e a versão do Milvus de destino.

    ./migrate.sh -i my-release -s 2.1.4 -t 2.2.0
    
  2. Especifique o espaço de nomes com -n se o seu Milvus não estiver instalado no espaço de nomes K8s predefinido.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0
    
  3. Especifique o caminho da raiz com -r se o seu Milvus estiver instalado com o rootpath personalizado.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
    
  4. Especifique a tag de imagem com -w se o seu Milvus estiver instalado com um image personalizado.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -w milvusdb/milvus:v2.2.0
    
  5. Defina -d true se pretender remover automaticamente o pod de migração após a conclusão da migração.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -w milvusdb/milvus:v2.2.0 -d true
    
  6. Reverter e migrar novamente se a migração falhar.

    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -o rollback -w milvusdb/milvus:v2.1.4
    ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev -o migrate -w milvusdb/milvus:v2.2.0
    

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?