• Sobre a Milvus
  • Começar
  • Conceitos
  • Guia do Utilizador
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • Perguntas frequentes
  • API Reference
MilvusOperator, Helm, DockerCompose

Atualizar o Milvus Standalone com o Milvus Operator

Este guia descreve como atualizar uma implementação autónoma do Milvus 2.6.x para a versão v3.0.3 com o Milvus Operator.

Este procedimento foi validado da versão Milvus 2.6.20 para a v3.0.3 com o Milvus Operator 1.3.0, o Woodpecker, o etcd no cluster e o MinIO no cluster. Se utilizar outra versão de patch do Milvus 2.6.x, versão do Operator, fila de mensagens ou configuração de dependências, valide primeiro a atualização num ambiente que não seja de produção.

Pré-requisitos

  • Um cluster Kubernetes com uma implementação autónoma do Milvus 2.6.x gerida pelo Milvus Operator
  • kubectl Acesso ao cluster
  • O manifesto completo do recurso personalizado (CR) do Milvus utilizado na implementação existente
  • O método de instalação e os manifestos utilizados para o Milvus Operator existente
  • Uma cópia de segurança atualizada dos metadados e dados persistentes do Milvus

Limitações da fila de mensagens: Ao atualizar para o Milvus v3.0.3, deve manter a sua escolha atual de fila de mensagens. A mudança entre diferentes sistemas de filas de mensagens durante a atualização não é suportada. O suporte à alteração de sistemas de filas de mensagens estará disponível em versões futuras.

Este procedimento não valida um downgrade ou reversão, alterando a imagem do Milvus de volta para a versão 2.6.x. Depois de a v3.0.3 gravar dados, uma reversão apenas da imagem pode não conseguir ler o estado atualizado. Se a atualização falhar, interrompa as gravações e utilize um plano de recuperação que restaure os cópias de segurança dos metadados e dos dados persistentes anteriores à atualização. Valide primeiro o plano de recuperação num ambiente que não seja de produção.

Processo de atualização

Passo 1: Faça uma cópia de segurança do CR atual do Milvus

Guarde o CR atual antes de alterar a implementação:

kubectl get milvus <instance-name> \
  --namespace <namespace> \
  --output yaml > milvus-before-upgrade.yaml

Utilize o manifesto de origem da sua implementação existente como manifesto de atualização. Não aplique diretamente o ficheiro de cópia de segurança exportado sem primeiro remover os metadados geridos pelo servidor e os campos de estado.

Passo 2: Confirmar a versão do Milvus Operator

Verifique a imagem utilizada pelo Milvus Operator instalado:

kubectl get deployments --all-namespaces \
  -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .spec.template.spec.containers[*]}{.image}{" "}{end}{"\n"}{end}' \
  | grep milvus-operator

A atualização validada manteve o Milvus Operator na versão 1.3.0. Mantenha a versão do Operator que atualmente gere a sua implementação do Milvus 2.6.x, a menos que a sua política de suporte exija uma atualização separada do Operator. Não faça o downgrade de um Operator mais recente para a versão testada. Se precisar de alterar a versão do Operator, utilize o mesmo método de instalação do Helm ou do kubectl e o mesmo nome de versão e namespace que a instalação existente; em seguida, valide a alteração do Operator antes de atualizar o Milvus CR.

Passo 3: Atualizar a imagem do Milvus

No manifesto completo do CR do Milvus, altere apenas ` spec.components.image`. Mantenha o modo existente, as definições dos componentes, a fila de mensagens, o etcd, o armazenamento e outras definições de dependências. O excerto seguinte mostra o campo a alterar; não substitua o seu CR completo por este excerto.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: <instance-name>
  namespace: <namespace>
spec:
  components:
    image: milvusdb/milvus:v3.0.3

Aplique o manifesto CR completo:

kubectl apply --filename milvus.yaml

Verifique a atualização

Verifique o estado do CR, o estado do Pod e as imagens de contentor:

kubectl get milvus <instance-name> \
  --namespace <namespace> \
  --output jsonpath='{.status.status}{"\t"}{.status.currentImage}{"\n"}'

kubectl get pods --namespace <namespace>

kubectl get pods --namespace <namespace> \
  -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'

Verifique se o CR do Milvus indica « Healthy », se a imagem atual é « milvusdb/milvus:v3.0.3 » e se as coleções existentes continuam a poder ser consultadas e pesquisadas. Conclua estas verificações antes de ativar qualquer funcionalidade específica da versão 3.0.3.