milvus-logo
LFAI
홈페이지
  • 관리 가이드

밀버스 오퍼레이터로 밀버스 클러스터 업그레이드하기

이 가이드는 Milvus 오퍼레이터로 Milvus 클러스터를 업그레이드하는 방법을 설명합니다.

Milvus 오퍼레이터 업그레이드

다음 명령어를 실행하여 Milvus 운영자 버전을 v1.0.1로 업그레이드합니다.

helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator

Milvus 운영자를 최신 버전으로 업그레이드한 후에는 다음과 같은 옵션을 선택할 수 있습니다:

롤링 업그레이드 수행

Milvus 2.2.3부터는 Milvus 코디네이터가 활성-대기 모드에서 작동하도록 구성하고 롤링 업그레이드 기능을 활성화하여 코디네이터 업그레이드 중에 들어오는 요청에 응답할 수 있도록 할 수 있습니다. 이전 릴리스에서는 업그레이드 중에 코디네이터를 제거했다가 다시 생성해야 하므로 서비스 다운타임이 발생할 수 있습니다.

Milvus 운영자는 Kubernetes에서 제공하는 롤링 업데이트 기능을 기반으로 종속성에 따라 배포를 순서대로 업데이트합니다. 또한 Milvus는 업그레이드 중에 구성 요소가 종속된 구성 요소와 호환성을 유지하도록 보장하는 메커니즘을 구현하여 잠재적인 서비스 중단 시간을 크게 줄입니다.

롤링 업그레이드 기능은 기본적으로 비활성화되어 있습니다. 구성 파일을 통해 명시적으로 활성화해야 합니다.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingUpgrade # Default value, can be omitted
    image: milvusdb/milvus:v2.5.0-beta

위의 구성 파일에서 spec.components.enableRollingUpdatetrue 으로 설정하고 spec.components.image 을 원하는 Milvus 버전으로 설정합니다.

기본적으로 Milvus는 코디네이터에 대한 롤링 업그레이드를 수행하여 코디네이터 포드 이미지를 차례로 교체하는 순서대로 진행합니다. 업그레이드 시간을 줄이려면 spec.components.imageUpdateModeall 으로 설정하여 Milvus가 모든 포드 이미지를 동시에 교체하도록 하세요.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: all
    image: milvusdb/milvus:v2.5.0-beta

spec.components.imageUpdateModerollingDowngrade 으로 설정하여 Milvus가 코디네이터 파드 이미지를 하위 버전으로 대체하도록 할 수 있습니다.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingDowngrade
    image: milvusdb/milvus:<some-old-version>

그런 다음 구성을 YAML 파일(예: milvusupgrade.yml)로 저장하고 다음과 같이 이 구성 파일을 Milvus 인스턴스에 패치합니다:

kubectl patch -f milvusupgrade.yml

이미지를 변경하여 Milvus 업그레이드

일반적인 경우에는 이미지를 변경하여 Milvus를 최신 버전으로 간단히 업데이트할 수 있습니다. 그러나 이러한 방식으로 Milvus를 업그레이드할 경우 일정 시간 동안 다운타임이 발생한다는 점에 유의하세요.

다음과 같이 구성 파일을 작성하고 milvusupgrade.yaml로 저장합니다:

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  # Omit other fields ...
  components:
   image: milvusdb/milvus:v2.5.0-beta

그런 다음 다음을 실행하여 업그레이드를 수행합니다:

kubectl patch -f milvusupgrade.yaml

메타데이터 마이그레이션

Milvus 2.2.0부터는 메타데이터가 이전 릴리즈의 메타데이터와 호환되지 않습니다. 다음 예제 코드 조각은 Milvus 2.1.4에서 Milvus 2.5.0-beta로 업그레이드하는 경우를 가정합니다.

1. 메타데이터 마이그레이션을 위한 .yaml 파일 만들기

메타데이터 마이그레이션 파일을 만듭니다. 다음은 예시입니다. 설정 파일에 name, sourceVersion, targetVersion 을 지정해야 합니다. 다음 예에서는 namemy-release-upgrade 으로 , sourceVersionv2.1.4 으로 , targetVersionv2.5.0-beta 으로 설정합니다. 즉, Milvus 클러스터가 v2.1.4에서 v2.5.0-beta로 업그레이드됩니다.

apiVersion: milvus.io/v1beta1
kind: MilvusUpgrade
metadata:
  name: my-release-upgrade
spec:
  milvus:
    namespace: default
    name: my-release
  sourceVersion: "v2.1.4"
  targetVersion: "v2.5.0-beta"
  # below are some omit default values:
  # targetImage: "milvusdb/milvus:v2.5.0-beta"
  # toolImage: "milvusdb/meta-migration:v2.2.0"
  # operation: upgrade
  # rollbackIfFailed: true
  # backupPVC: ""
  # maxRetry: 3

2. 새 구성 적용

다음 명령을 실행하여 새 구성을 생성합니다.

$ kubectl create -f https://github.com/zilliztech/milvus-operator/blob/main/config/samples/beta/milvusupgrade.yaml

3. 메타데이터 마이그레이션 상태 확인

다음 명령을 실행하여 메타데이터 마이그레이션 상태를 확인합니다.

kubectl describe milvus release-name

출력에 ready 상태가 표시되면 메타데이터 마이그레이션이 성공했음을 의미합니다.

또는 kubectl get pod 을 실행하여 모든 파드를 확인할 수도 있습니다. 모든 파드가 ready 이면 메타데이터 마이그레이션이 성공한 것입니다.

4. 삭제 my-release-upgrade

업그레이드가 성공하면 YAML 파일에서 my-release-upgrade 을 삭제합니다.

번역DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

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