헬름으로 쿠버네티스에서 밀버스 실행하기
이 페이지는 밀버스 헬름 차트를 사용하여 쿠버네티스에서 밀버스 인스턴스를 시작하는 방법을 설명한다.
개요
헬름은 차트라는 패키징 형식을 사용한다. 차트는 관련 쿠버네티스 리소스 집합을 설명하는 파일 모음이다. 밀버스는 밀버스 의존성과 컴포넌트를 배포하는 데 도움이 되는 차트 세트를 제공한다.
전제 조건
스토리지클래스를 설치한다. 설치된 StorageClass는 아래와 같이 확인할 수 있다.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate false
설치 전 하드웨어 및 소프트웨어 요구 사항을 확인한다.
밀버스를 설치하기 전에 밀버스 사이징 툴을 사용하여 데이터 크기에 따라 하드웨어 요구 사항을 추정하는 것을 권장합니다. 이렇게 하면 Milvus 설치를 위한 최적의 성능과 리소스 할당을 보장하는 데 도움이 됩니다.
이미지를 가져오는 데 문제가 발생하면 community@zilliz.com 으로 문의하여 문제에 대한 자세한 내용을 알려주시면 필요한 지원을 제공해 드리겠습니다.
Milvus 헬름 차트 설치
밀버스 헬름 차트를 설치하기 전에 밀버스 헬름 리포지토리를 추가해야 합니다.
$ helm repo add milvus https://zilliztech.github.io/milvus-helm/
Milvus Helm Charts 리포지토리( https://github.com/milvus-io/milvus-helm
)는 아카이브되어 있으며, 다음과 같이 https://github.com/zilliztech/milvus-helm
에서 추가 업데이트를 받을 수 있습니다:
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus
보관된 리포지토리는 4.0.31까지 차트에 계속 사용할 수 있습니다. 이후 릴리스에서는 새 리포지토리를 사용하세요.
그런 다음 다음과 같이 리포지토리에서 Milvus 차트를 가져옵니다:
$ helm repo update
언제든지 이 명령을 실행하여 최신 Milvus 헬름 차트를 가져올 수 있습니다.
온라인 설치
1. 밀버스 클러스터 배포
헬름 차트를 설치했으면, 쿠버네티스에서 Milvus를 시작할 수 있다. 이 섹션에서는 Milvus를 시작하는 단계를 안내합니다.
$ helm install my-release milvus/milvus
위의 명령에서 my-release
은 릴리스 이름이고 milvus/milvus
은 로컬로 설치된 차트 리포지토리입니다. 다른 이름을 사용하려면 my-release
을 원하는 이름으로 바꾸세요.
위의 명령은 기본 구성을 사용하여 구성 요소 및 종속성과 함께 Milvus 클러스터를 배포합니다. 이러한 설정을 사용자 지정하려면 Milvus 크기 조정 도구를 사용하여 실제 데이터 크기에 따라 구성을 조정한 다음 해당 YAML 파일을 다운로드하는 것이 좋습니다. 구성 매개변수에 대해 자세히 알아보려면 Milvus 시스템 구성 체크리스트를 참조하세요.
- 릴리스 이름에는 문자, 숫자 및 대시만 포함해야 합니다. 릴리스 이름에는 점을 사용할 수 없습니다.
- 기본 명령줄은 헬름과 함께 Milvus를 설치하는 동안 클러스터 버전의 Milvus를 설치합니다. Milvus를 독립형으로 설치할 때는 추가 설정이 필요하다.
- 쿠버네티스의 더 이상 사용되지 않는 API 마이그레이션 가이드에 따르면, v1.25 버전부터 파드장애예산 정책/v1beta1 API 버전은 더 이상 제공되지 않는다. 대신 정책/v1 API 버전을 사용하도록 매니페스트와 API 클라이언트를 마이그레이션하는 것이 좋다.
쿠버네티스 v1.25 이상에서 여전히 정책/v1beta1 버전의 파드디스럽션예산 API 버전을 사용하는 사용자를 위한 해결 방법으로, 대신 다음 명령을 실행하여 밀버스를 설치할 수 있다:
.helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
- 자세한 내용은 밀버스 헬름 차트와 헬름을 참고한다.
2. Milvus 클러스터 상태 확인
다음 명령어를 실행하여 Milvus 클러스터의 모든 파드의 상태를 확인합니다.
$ kubectl get pods
모든 파드가 실행되면 위 명령어의 출력은 다음과 유사하게 표시됩니다:
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 3m23s
my-release-etcd-1 1/1 Running 0 3m23s
my-release-etcd-2 1/1 Running 0 3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm 1/1 Running 0 3m23s
my-release-milvus-indexnode-5c5f7b5bd9-l8hjg 1/1 Running 0 3m24s
my-release-milvus-mixcoord-7fb9488465-dmbbj 1/1 Running 0 3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv 1/1 Running 0 3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg 1/1 Running 0 3m24s
my-release-minio-0 1/1 Running 0 3m23s
my-release-minio-1 1/1 Running 0 3m23s
my-release-minio-2 1/1 Running 0 3m23s
my-release-minio-3 1/1 Running 0 3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc 1/1 Running 0 3m24s
my-release-pulsar-bookkeeper-0 1/1 Running 0 3m23s
my-release-pulsar-bookkeeper-1 1/1 Running 0 98s
my-release-pulsar-broker-556ff89d4c-2m29m 1/1 Running 0 3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-0 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-metadata-98zbr 0/1 Completed 0 3m24s
3. Milvus로 로컬 포트 포워딩
다음 명령어를 실행하여 Milvus 클러스터가 서비스하는 포트를 가져옵니다.
$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530
출력은 Milvus 인스턴스가 기본 포트 19530에서 서비스하고 있음을 보여줍니다.
독립 실행형 모드로 Milvus를 배포한 경우, 파드 이름을 my-release-milvus-proxy-xxxxxxxxxx-xxxxx
에서 my-release-milvus-xxxxxxxxxx-xxxxx
으로 변경합니다.
그런 다음 다음 명령을 실행하여 로컬 포트를 Milvus가 서비스하는 포트로 전달합니다.
$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530
선택적으로, 위의 명령에서 27017:19530
대신 :19530
을 사용하여 kubectl
이 로컬 포트를 할당하도록 하여 포트 충돌을 관리할 필요가 없도록 할 수 있다.
기본적으로 kubectl의 포트 포워딩은 localhost
에서만 수신 대기한다. 밀버스가 선택한 또는 모든 IP 주소에서 수신 대기하도록 하려면 address
플래그를 사용한다. 다음 명령은 호스트 머신의 모든 IP 주소에서 포트 포워딩을 수신 대기하도록 한다.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530
오프라인 설치
네트워크가 제한된 환경에 있는 경우 이 섹션의 절차에 따라 Milvus 클러스터를 시작하세요.
1. Milvus 매니페스트 가져오기
다음 명령을 실행하여 Milvus 매니페스트를 가져옵니다.
$ helm template my-release milvus/milvus > milvus_manifest.yaml
위 명령은 Milvus 클러스터에 대한 차트 템플릿을 렌더링하고 그 출력을 milvus_manifest.yaml
이라는 매니페스트 파일에 저장합니다. 이 매니페스트를 사용하여 별도의 파드에 구성 요소 및 종속 요소와 함께 Milvus 클러스터를 설치할 수 있습니다.
- 모든 Milvus 구성 요소가 단일 포드 내에 포함된 독립형 모드에서 Milvus 인스턴스를 설치하려면 대신
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false milvus/milvus > milvus_manifest.yaml
을 실행하여 독립형 모드에서 Milvus 인스턴스에 대한 차트 템플릿을 렌더링해야 합니다. - Milvus 구성을 변경하려면, 템플릿을 다운로드하고
value.yaml
템플릿을 다운로드하여 원하는 설정을 지정한 다음helm template -f values.yaml my-release milvus/milvus > milvus_manifest.yaml
을 사용하여 매니페스트를 적절히 렌더링합니다.
2. 이미지 풀링 스크립트 다운로드
이미지 풀링 스크립트는 Python으로 개발되었습니다. requirement.txt
파일에서 해당 스크립트와 종속 요소를 다운로드해야 합니다.
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py
3. 이미지 가져오기 및 저장
다음 명령을 실행하여 필요한 이미지를 가져와 저장합니다.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
이미지는 현재 디렉토리의 images
이라는 하위 폴더로 가져옵니다.
4. 이미지 로드
이제 다음과 같이 네트워크가 제한된 환경의 호스트에 이미지를 로드할 수 있습니다:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. Milvus 배포
$ kubectl apply -f milvus_manifest.yaml
지금까지는 온라인 설치의 2, 3단계에 따라 클러스터 상태를 확인하고 로컬 포트를 Milvus로 전달할 수 있습니다.
실행 중인 Milvus 클러스터 업그레이드
다음 명령어를 실행하여 실행 중인 Milvus 클러스터를 최신 버전으로 업그레이드합니다:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus
Milvus 제거
다음 명령을 실행하여 Milvus를 제거합니다.
$ helm uninstall my-release
다음 단계
Docker에 Milvus를 설치했으면 다음을 수행할 수 있습니다:
Hello Milvus를 확인하여 Milvus의 기능을 살펴봅니다.
Milvus의 기본 작동에 대해 알아보세요:
Milvus 클러스터를 클라우드에 배포하세요:
Milvus 데이터 백업을 위한 오픈 소스 도구인 Milvus Backup을 살펴보세요.
Milvus 디버깅 및 동적 구성 업데이트를 위한 오픈 소스 도구인 Birdwatcher를 살펴보세요.
직관적인 Milvus 관리를 위한 오픈 소스 GUI 도구인 Attu를 살펴보세요.