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