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

GKE에 Milvus 클러스터 배포하기

Milvus는 클라우드 네이티브 벡터 데이터베이스로서 다양한 클라우드 환경에 배포할 수 있습니다. 이 가이드에서는 Google Cloud Platform(GCP)에서 Milvus를 설정하는 방법에 대해 자세히 설명합니다.

Deploy a Milvus cluster on GCP GCP에 Milvus 클러스터 배포하기

시작하기 전에

GCP에 Milvus를 배포하려면 다음 사항을 확인하세요.

네트워크 설정

Milvus 보안을 보장하려면 GCP 프로젝트에서 논리적으로 격리된 가상 네트워크를 만들어야 합니다. 다음 명령은 VPC를 생성합니다.

gcloud compute networks create milvus-network \
    --project=milvus-testing-nonprod \
    --subnet-mode=auto \
    --mtu=1460 \
    --bgp-routing-mode=regional

작업을 용이하게 하려면 VPC 내의 트래픽뿐만 아니라 ICMP, RDP 및 SSH를 통한 외부 트래픽을 허용하는 몇 가지 방화벽 규칙도 설정해야 합니다.

gcloud compute firewall-rules create milvus-network-allow-icmp \
    --project=milvus-testing-nonprod \
    --network=projects/milvus-testing-nonprod/global/networks/milvus-network \
    --description="Allows ICMP connections from any source to any instance on the network." \
    --direction=INGRESS \
    --priority=65534 \
    --source-ranges=0.0.0.0/0 \
    --action=ALLOW \
    --rules=icmp

gcloud compute firewall-rules create milvus-network-allow-internal \
    --project=milvus-testing-nonprod \
    --network=projects/milvus-testing-nonprod/global/networks/milvus-network \
    --description="Allows connections from any source in the network IP range to any instance on the network using all protocols." \
    --direction=INGRESS \
    --priority=65534 \
    --source-ranges=10.128.0.0/9 \
    --action=ALLOW --rules=all

gcloud compute firewall-rules create milvus-network-allow-rdp \
    --project=milvus-testing-nonprod \
    --network=projects/milvus-testing-nonprod/global/networks/milvus-network \
    --description="Allows RDP connections from any source to any instance on the network using port 3389." \
    --direction=INGRESS \
    --priority=65534 \
    --source-ranges=0.0.0.0/0 \
    --action=ALLOW \
    --rules=tcp:3389

gcloud compute firewall-rules create milvus-network-allow-ssh \
    --project=milvus-testing-nonprod \
    --network=projects/milvus-testing-nonprod/global/networks/milvus-network \
    --description="Allows TCP connections from any source to any instance on the network using port 22." \
    --direction=INGRESS \
    --priority=65534 \
    --source-ranges=0.0.0.0/0 \
    --action=ALLOW \
    --rules=tcp:22

마지막으로, 포트 19530에서 나중에 생성할 Milvus 인스턴스로 들어오는 트래픽을 허용해야 합니다.

gcloud compute firewall-rules create allow-milvus-in \
    --project=milvus-testing-nonprod  \
    --description="Allow ingress traffic for Milvus on port 19530" \
    --direction=INGRESS \
    --priority=1000 \
    --network=projects/milvus-testing-nonprod/global/networks/milvus-network \
    --action=ALLOW \
    --rules=tcp:19530 \
    --source-ranges=0.0.0.0/0

쿠버네티스 클러스터 프로비저닝하기

이 가이드에서는 GKE(구글 쿠버네티스 엔진) 서비스를 사용하여 us-west1-a 영역에 두 개의 노드가 있는 쿠버네티스 클러스터를 프로비저닝하겠습니다. 각 노드는 COS_CONTAINERD 이미지를 실행하는 e2-standard-4 컴퓨팅 엔진 가상 머신입니다.

서비스 안정성을 보장하기 위해 최소 16GB의 메모리를 제공하는 유형의 머신을 사용하는 것이 좋습니다.

gcloud container clusters create "milvus-cluster-1" \
    --project "milvus-testing-nonprod" \
    --zone "us-west1-a" \
    --workload-pool "milvus-testing-nonprod.svc.id.goog" \
    --no-enable-basic-auth \
    --cluster-version "1.28.10-gke.1075001" \
    --release-channel "regular" \
    --machine-type "c2-standard-4" \
    --image-type "COS_CONTAINERD" \
    --disk-type "pd-standard" \
    --disk-size "100" \
    --max-pods-per-node "110" \
    --num-nodes "3" \
    --enable-ip-alias \
    --network "projects/milvus-testing-nonprod/global/networks/milvus-network" \
    --subnetwork "projects/milvus-testing-nonprod/regions/us-west1/subnetworks/milvus-network"

Kubernetes 클러스터가 올라가는 데 몇 분 정도 걸립니다. 클러스터가 준비되면 다음 명령을 사용하여 자격 증명을 가져와서 터미널에서 kubectl 명령을 실행하여 클러스터와 원격으로 통신할 수 있도록 합니다.

gcloud container clusters get-credentials milvus-cluster-1 --zone "us-west1-a"

Google 클라우드 스토리지(GCS)를 외부 객체 스토리지로 사용

  • 버킷을 만듭니다.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
  • 사용자 액세스 키와 비밀 키를 생성한 후 프로젝트의 저장소 페이지로 이동합니다. 대시보드의 왼쪽 사이드바에서 Google 클라우드 스토리지를 클릭한 다음 설정을 클릭합니다. 상호운용성 탭을 선택합니다. 아직 활성화하지 않았다면 상호 운용 가능한 액세스를 클릭합니다. 그런 다음 키 만들기 버튼을 클릭하여 만듭니다.

GCP Access keys for your user account 사용자 계정의 GCP 액세스 키

  • values.yaml 추가
cluster:
    enabled: true

service:
    type: LoadBalancer

minio:
    enabled: false

externalS3:
    enabled: true
    host: storage.googleapis.com
    port: 443
    rootPath: milvus/my-release
    bucketName: milvus-testing-nonprod
    cloudProvider: gcp
    useSSL: true
    accessKey: "<access-key>"
    secretKey: "<secret-key>"

Milvus 배포

이제 Kubernetes 클러스터가 준비되었습니다. 지금 바로 Milvus를 배포해 보겠습니다.

helm repo add milvus https://zilliztech.github.io/milvus-helm/
helm repo update
helm install -f values.yaml my-release milvus/milvus

앞의 명령에서 Milvus Helm 차트의 리포지토리를 로컬에 추가하고 최신 차트를 가져오도록 리포지토리를 업데이트합니다. 그런 다음 Milvus 인스턴스를 설치하고 이름을 my-release로 지정합니다.

구성 service.type 값에 주목하세요. 이는 Layer-4 로드 밸런서를 통해 Milvus 인스턴스를 노출하고 싶다는 것을 나타냅니다.

Layer-7 로드 밸런서를 통해 Milvus 인스턴스를 노출하려면 이 글을 읽어보세요.

배포 확인

모든 파드가 실행되면 다음 명령을 실행하여 외부 IP 주소를 가져옵니다.

kubectl get services|grep my-release-milvus|grep LoadBalancer|awk '{print $4}'

Hello Milvus

Hello Milvus를 참조하여 호스트 값을 외부 IP 주소로 변경한 다음 코드를 실행하세요.

다음 단계

다른 클라우드에 Milvus를 배포하는 방법을 알아보려면 다음과 같이 하세요:

번역DeepLogo

Try Managed Milvus for Free

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

Get Started
피드백

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