MilvusOperator, Helm, DockerCompose

Milvus Operator를 사용하여 Milvus 독립형 버전 업그레이드

이 가이드에서는 Milvus Operator를 사용하여 Milvus 2.6.x 독립형 배포 환경을 v3.0.3으로 업그레이드하는 방법을 설명합니다.

이 절차는 Milvus Operator 1.3.0(Woodpecker), 클러스터 내 etcd 및 클러스터 내 MinIO를 사용하여 Milvus 2.6.20에서 Milvus v3.0.3으로 업그레이드하는 경우 검증되었습니다. 다른 Milvus 2.6.x 패치 릴리스, Operator 버전, 메시지 큐 또는 종속성 구성을 사용하는 경우, 먼저 비생산 환경에서 업그레이드를 검증하십시오.

전제 조건

  • Milvus Operator로 관리되는 Milvus 2.6.x 독립형 배포가 포함된 Kubernetes 클러스터
  • kubectl 클러스터에 대한 액세스 권한
  • 기존 배포에 사용된 전체 Milvus 사용자 정의 리소스(CR) 매니페스트
  • 기존 Milvus Operator에 사용된 설치 방법 및 매니페스트
  • Milvus 메타데이터 및 영구 데이터의 최신 백업

메시지 큐 제한 사항: Milvus v3.0.3으로 업그레이드할 때는 현재 사용 중인 메시지 큐를 유지해야 합니다. 업그레이드 과정에서 다른 메시지 큐 시스템으로 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경에 대한 지원은 향후 버전에서 제공될 예정입니다.

이 절차는 Milvus 이미지를 2.6.x 버전으로 되돌리는 다운그레이드 또는 롤백을 검증하지 않습니다. v3.0.3이 데이터를 기록한 후에는, 이미지만을 대상으로 하는 롤백 시 업데이트된 상태를 읽지 못할 수 있습니다. 업그레이드가 실패할 경우, 쓰기 작업을 중지하고 업그레이드 이전의 메타데이터 및 영구 데이터 백업을 복원하는 복구 계획을 사용하십시오. 복구 계획은 먼저 비생산 환경에서 검증하십시오.

업그레이드 절차

1단계: 현재 Milvus CR 백업

배포를 변경하기 전에 현재 CR을 저장하십시오:

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

기존 배포의 소스 매니페스트를 업그레이드 매니페스트로 사용하십시오. 서버에서 관리하는 메타데이터 및 상태 필드를 먼저 제거하지 않고는 내보낸 백업 파일을 직접 적용하지 마십시오.

2단계: Milvus Operator 버전 확인

설치된 Milvus Operator에서 사용하는 이미지를 확인하십시오:

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

검증된 업그레이드에서는 Milvus Operator 버전을 1.3.0으로 유지했습니다. 지원 정책에 따라 별도의 Operator 업그레이드가 필요한 경우가 아니라면, 현재 Milvus 2.6.x 배포를 관리하고 있는 Operator 버전을 그대로 유지하십시오. 최신 버전의 Operator를 테스트된 버전으로 다운그레이드하지 마십시오. Operator 버전을 변경해야 하는 경우, 기존 설치와 동일한 Helm 또는 kubectl 설치 방법과 동일한 릴리스 이름 및 네임스페이스를 사용한 다음, Milvus CR을 업데이트하기 전에 Operator 변경 사항을 검증하십시오.

3단계: Milvus 이미지 업데이트

전체 Milvus CR 매니페스트에서 spec.components.image 만 변경하십시오. 기존 모드, 컴포넌트 설정, 메시지 큐, etcd, 스토리지 및 기타 종속성 설정은 그대로 유지하십시오. 다음 발췌문은 변경해야 할 필드를 보여줍니다. 전체 CR을 이 발췌문으로 대체하지 마십시오.

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

전체 CR 매니페스트 적용:

kubectl apply --filename milvus.yaml

업그레이드 확인

CR 상태, Pod 상태 및 컨테이너 이미지를 확인합니다:

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}'

Milvus CR에 Healthy 가 보고되는지, 현재 이미지가 milvusdb/milvus:v3.0.3 인지, 기존 컬렉션을 계속 쿼리하고 검색할 수 있는지 확인하십시오. v3.0.3 전용 기능을 활성화하기 전에 이러한 확인 작업을 완료하십시오.

번역DeepL

관리형 Milvus를 무료로 사용해 보세요

Zilliz Cloud는 번거로움이 없으며, Milvus 기반으로 10배 더 빠릅니다.

시작하기
피드백

이 페이지가 도움이 되었나요?