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:
Atualizar o Milvus utilizando o Helm para uma atualização de uma versão menor antes da v2.2.3 para a v2.4.18.
Migrar os metadados antes da atualização do Milvus v2.1.x para a v2.4.18.
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 se aplica apenas 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âmetros | Descrição | Valor por defeito | Necessário |
---|---|---|---|
i | O nome da instância Milvus. | None | Verdadeiro |
n | O espaço de nomes em que o Milvus está instalado. | default | Falso |
s | A versão de origem do Milvus. | None | Verdadeiro |
t | A versão de destino do Milvus. | None | Verdadeiro |
r | O caminho da raiz do meta Milvus. | by-dev | Falso |
w | A nova etiqueta de imagem do Milvus. | milvusdb/milvus:v2.2.0 | Falso |
m | A etiqueta de imagem da meta-migração. | milvusdb/meta-migration:v2.2.0 | Falso |
o | A operação de meta-migração. | migrate | Falso |
d | Se deve ser eliminado o pod de migração após a conclusão da migração. | false | Falso |
c | A classe de armazenamento para o pvc de metamigração. | default storage class | Falso |
e | O ponto de acesso etcd utilizado pelo milvus. | etcd svc installed with milvus | Falso |
1. Migrar os metadados
- Descarregar o script de migração.
- Parar os componentes do Milvus. Qualquer sessão em direto no Milvus etcd pode causar uma falha na migração.
- Crie uma cópia de segurança para os metadados do Milvus.
- Migrar os metadados do Milvus.
- 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.
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
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
Especifique o caminho da raiz com
-r
se o seu Milvus estiver instalado com orootpath
personalizado../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.2.0 -r by-dev
Especifique a tag de imagem com
-w
se o seu Milvus estiver instalado com umimage
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
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
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