🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 管理指南
  • Home
  • Docs
  • 管理指南

  • 部署

  • 在 GCP 上部署

在 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

為了方便您的工作,您也需要設定數個防火牆規則,以允許透過 ICMP、RDP 和 SSH 的外部流量,以及 VPC 內的流量。

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區域中佈建一個有兩個節點的 Kubernetes 叢集。每個節點都是執行COS_CONTAINERD映像的e2-standard-4Compute Engine 虛擬機。

建議您使用提供至少 16 GB 記憶體的機器類型,以確保服務的穩定性。

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,然後按一下設定。選取 INTEROPERABILITY 索引標籤。如果尚未啟用,請按一下互操作存取。然後按一下 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 圖表的 repo,並更新 repo 以取得最新的圖表。然後,我們安裝一個 Milvus 實例,並命名為my-release

請注意配置service.type 的值,它表示我們希望透過 Layer-4 負載平衡器揭露 Milvus 的實例。

如果您想透過第 7 層負載平衡器暴露您的 Milvus 實例,請閱讀這篇文章

驗證部署

所有 pod 都運行後,執行下列指令以取得外部 IP 位址。

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

你好 Milvus

請參考Hello Milvus,將 host 值變更為外部 IP 位址,然後執行程式碼。

下一步

如果您想學習如何在其他雲端部署 Milvus:

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?