milvus-logo
LFAI
Home
  • Guía de administración
    • Despliegue

Despliegue de un clúster de Milvus en GKE

Milvus es una base de datos vectorial nativa de la nube y puede desplegarse en varios entornos de nube. Esta guía le guiará a través de cada detalle sobre la configuración de Milvus en Google Cloud Platform (GCP).

Deploy a Milvus cluster on GCP Despliegue de un clúster Milvus en GCP

Antes de empezar

Para desplegar Milvus en GCP, asegúrese de que

Configurar la red

Para garantizar la seguridad de Milvus, necesita crear una red virtual lógicamente aislada en su proyecto GCP. El siguiente comando crea una VPC.

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

Para facilitar su trabajo, también necesita configurar varias reglas de cortafuegos para permitir el tráfico externo a través de ICMP, RDP y SSH, así como el tráfico dentro de la 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

Por último, debe permitir el tráfico entrante a la instancia de Milvus que crearemos más adelante en el puerto 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

Aprovisionar un clúster Kubernetes

En esta guía, utilizaremos el servicio Google Kubernetes Engine (GKE) para aprovisionar un clúster Kubernetes con dos nodos en la zona us-west1-a. Cada nodo es una máquina virtual e2-standard-4 Compute Engine que ejecuta la imagen COS_CONTAINERD.

Se recomienda utilizar máquinas que ofrezcan una memoria mínima de 16 GB para garantizar la estabilidad del servicio.

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"

El clúster Kubernetes tardará un par de minutos en ponerse en marcha. Una vez que el clúster esté listo, utilice el siguiente comando para obtener sus credenciales de modo que pueda ejecutar comandos kubectl en su terminal para comunicarse con el clúster de forma remota.

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

Utilizar Google Cloud Storage (GCS) como almacenamiento de objetos externo

  • Crear bucket.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
  • Genera la Clave de Acceso de Usuario y la Clave Secreta, debes ir a la página de almacenamiento de tu proyecto. En la barra lateral izquierda del panel de control, haz clic en Google Cloud Storage y luego en Configuración. Selecciona la pestaña INTEROPERABILIDAD. Si aún no la has habilitado, haz clic en Acceso interoperable. A continuación, haga clic en el botón CREAR UNA CLAVE para crear.

GCP Access keys for your user account Claves de acceso a GCP para su cuenta de usuario

  • Añada 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>"

Despliegue de Milvus

Ahora el cluster Kubernetes está listo. Despleguemos Milvus ahora mismo.

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

En los comandos anteriores, añadimos el repositorio de gráficos de Milvus Helm localmente y actualizamos el repositorio para obtener los gráficos más recientes. Luego instalamos una instancia de Milvus y la llamamos my-release.

Observe el valor config service.type, que indica que nos gustaría exponer la instancia Milvus a través de un equilibrador de carga de capa 4.

Si desea exponer su instancia Milvus a través de un equilibrador de carga de capa 7, lea esto.

Verifique el despliegue

Una vez que todos los pods estén funcionando, ejecute el siguiente comando para obtener la dirección IP externa.

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

Hola Milvus

Consulte Hola Milvus, cambie el valor del host por la dirección IP externa y, a continuación, ejecute el código.

Lo que sigue

Si desea aprender cómo desplegar Milvus en otras nubes:

Traducido porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?