milvus-logo
LFAI
Home
  • Guide d'administration
    • Déploiement

Déployer un cluster Milvus sur GKE

Milvus est une base de données vectorielle native pour le cloud et peut être déployée dans divers environnements cloud. Ce guide vous présente tous les détails de la configuration de Milvus sur Google Cloud Platform (GCP).

Deploy a Milvus cluster on GCP Déployer un cluster Milvus sur GCP

Avant de commencer

Pour déployer Milvus sur GCP, assurez-vous que

Configuration du réseau

Pour garantir la sécurité de Milvus, vous devez créer un réseau virtuel logiquement isolé dans votre projet GCP. La commande suivante crée un VPC.

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

Pour faciliter votre travail, vous devez également configurer plusieurs règles de pare-feu afin d'autoriser le trafic externe via ICMP, RDP et SSH ainsi que le trafic à l'intérieur du 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

Enfin, vous devez autoriser le trafic entrant vers l'instance Milvus que nous créerons plus tard au port 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

Provisionner un cluster Kubernetes

Dans ce guide, nous utiliserons le service Google Kubernetes Engine (GKE) pour provisionner un cluster Kubernetes avec deux nœuds dans la zone us-west1-a. Chaque nœud est une machine virtuelle e2-standard-4 Compute Engine exécutant l'image COS_CONTAINERD.

Il est conseillé d'utiliser les types de machines qui offrent une mémoire minimale de 16 Go pour assurer la stabilité du service.

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"

Il faudra quelques minutes pour que le cluster Kubernetes se mette en place. Une fois que le cluster est prêt, utilisez la commande suivante pour récupérer ses identifiants afin de pouvoir exécuter des commandes kubectl dans votre terminal pour communiquer avec le cluster à distance.

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

Utiliser Google Cloud Storage (GCS) comme stockage d'objets externe

  • Créez un seau.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
  • Générez la clé d'accès de l'utilisateur et la clé secrète, vous devez aller sur la page de stockage de votre projet. Dans la barre latérale gauche du tableau de bord, cliquez sur Google Cloud Storage puis sur Paramètres. Sélectionnez l'onglet INTEROPÉRABILITÉ. Si vous ne l'avez pas encore activé, cliquez sur Accès interopérable. Cliquez ensuite sur le bouton CRÉER UNE CLÉ pour créer des clés d'accès GCP pour votre compte utilisateur.

GCP Access keys for your user account Clés d'accès GCP pour votre compte utilisateur

  • Ajouter 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>"

Déployer Milvus

Le cluster Kubernetes est maintenant prêt. Déployons Milvus dès maintenant.

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

Dans les commandes précédentes, nous ajoutons le repo des cartes Milvus Helm localement et mettons à jour le repo pour récupérer les dernières cartes. Ensuite, nous installons une instance Milvus et la nommons my-release.

Remarquez la valeur de config service.type, qui indique que nous souhaitons exposer l'instance Milvus via un équilibreur de charge Layer-4.

Si vous souhaitez exposer votre instance Milvus via un équilibreur de charge de couche 7, lisez ceci.

Vérifier le déploiement

Une fois que tous les pods fonctionnent, exécutez la commande suivante pour obtenir l'adresse IP externe.

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

Bonjour Milvus

Veuillez vous référer à Hello Milvus, changez la valeur host en adresse IP externe, puis exécutez le code.

Prochaines étapes

Si vous souhaitez apprendre à déployer Milvus sur d'autres clouds :

Traduit parDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?