milvus-logo
LFAI
フロントページへ
  • 管理ガイド

GKEにMilvusクラスタをデプロイする

Milvusはクラウドネイティブなベクターデータベースであり、様々なクラウド環境にデプロイすることができます。本ガイドでは、Google Cloud Platform (GCP)上でのMilvusのセットアップについて詳細に説明します。

Deploy a Milvus cluster on GCP GCP上でのMilvusクラスタのデプロイ

始める前に

GCP上にMilvusをデプロイするには、以下を確認してください。

  • GCPアカウントにプロジェクトが存在すること。

    プロジェクトを作成するには、プロジェクトの作成と管理を参照してください。このガイドで使用するプロジェクトの名前はmilvus-testing-nonprod です。

  • gcloud CLIkubectl、およびHelm をローカルにインストールしたか、代わりにブラウザベースのCloud Shellを使用することにしました。

  • GCP アカウント認証情報を使用してgcloud CLI を初期化しました。

ネットワークのセットアップ

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

Kubernetesクラスタのプロビジョニング

このガイドでは、Google Kubernetes Engine(GKE)サービスを使用して、us-west1-aゾーンに2つのノードを持つKubernetesクラスタをプロビジョニングします。各ノードは、COS_CONTAINERDイメージを実行するe2-standard-4Compute Engine仮想マシンです。

サービスの安定性を確保するために、最低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 Cloud Storage(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 Cloud Storageをクリックし、Settingsをクリックします。INTEROPERABILITY タブを選択します。まだ有効にしていない場合は、Interoperable Accessをクリックします。次に、[CREATE A KEY]ボタンをクリックして作成します。

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 。これはMilvusインスタンスをレイヤ4ロードバランサー経由で公開することを示しています。

Milvusインスタンスをレイヤ7ロードバランサー経由で公開したい場合は、こちらをお読みください。

デプロイの確認

すべてのPodが起動したら、以下のコマンドを実行して外部IPアドレスを取得する。

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

Hello Milvus

Hello Milvusを参照し、hostの値を外部IPアドレスに変更してからコードを実行してください。

次のステップ

Milvusを他のクラウドにデプロイする方法を学びたい場合は、以下のリンクを参照してください:

翻訳DeepL

Try Managed Milvus for Free

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

Get Started
フィードバック

このページは役に立ちましたか ?