🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
  • Home
  • Docs
  • Руководство по администрированию

  • Развертывание

  • На облаках

  • Развертывание на GCP

Развертывание кластера Milvus на GKE

Milvus - это облачная векторная база данных, которая может быть развернута в различных облачных средах. В этом руководстве вы узнаете все подробности о настройке Milvus на Google Cloud Platform (GCP).

Deploy a Milvus cluster on GCP Развертывание кластера Milvus на GCP

Прежде чем начать

Чтобы развернуть Milvus на GCP, убедитесь, что

Настройка сети

Чтобы обеспечить безопасность 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

Наконец, нужно разрешить входящий трафик для экземпляра Milvus, который мы создадим позже, на порт 19530.

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) для создания кластера Kubernetes с двумя узлами в зоне us-west1-a. Каждый узел представляет собой виртуальную машину e2-standard-4 Compute Engine под управлением образа COS_CONTAINERD.

Для обеспечения стабильности сервиса рекомендуется использовать машины с минимальным объемом памяти 16 ГБ.

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 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.

Обратите внимание на значение config service.type, которое указывает на то, что мы хотим открыть экземпляр Milvus через балансировщик нагрузки Layer-4.

Если вы хотите использовать экземпляр Milvus через балансировщик нагрузки уровня 7, прочтите эту статью.

Проверка развертывания

Когда все стручки запущены, выполните следующую команду, чтобы получить внешний IP-адрес.

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

Hello Milvus

Обратитесь к Hello Milvus, измените значение host на внешний IP-адрес, а затем запустите код.

Что дальше

Если вы хотите узнать, как развернуть Milvus в других облаках:

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?