milvus-logo
LFAI
Home
  • Guia de Administração
    • Implantação

Implantar um cluster do Milvus no GKE

O Milvus é um banco de dados vetorial nativo da nuvem e pode ser implantado em vários ambientes de nuvem. Este guia apresenta todos os detalhes sobre a configuração do Milvus no Google Cloud Platform (GCP).

Deploy a Milvus cluster on GCP Implantar um cluster do Milvus no GCP

Antes de começar

Para implementar o Milvus no GCP, certifique-se de que

Configurar a rede

Para garantir a segurança do Milvus, é necessário criar uma rede virtual logicamente isolada no seu projeto GCP. O comando a seguir cria um VPC.

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

Para facilitar o seu trabalho, também precisa de configurar várias regras de firewall para permitir o tráfego externo através de ICMP, RDP e SSH, bem como o tráfego dentro da 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 fim, você precisa permitir o tráfego de entrada para a instância do Milvus que criaremos mais tarde na porta 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

Provisionar um cluster Kubernetes

Neste guia, usaremos o serviço Google Kubernetes Engine (GKE) para provisionar um cluster Kubernetes com dois nós na zona us-west1-a. Cada nó é uma máquina virtual do Compute Engine e2-standard-4 executando a imagem COS_CONTAINERD.

É recomendável usar os tipos de máquinas que oferecem uma memória mínima de 16 GB para garantir a estabilidade do serviço.

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"

Levará alguns minutos para que o cluster do Kubernetes seja ativado. Quando o cluster estiver pronto, use o seguinte comando para obter suas credenciais para que você possa executar kubectl comandos no seu terminal para se comunicar com o cluster remotamente.

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

Usar o Google Cloud Storage (GCS) como armazenamento de objeto externo

  • Criar um bucket.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
  • Gerar a chave de acesso do utilizador e a chave secreta, deve ir para a página de armazenamento do seu projeto. Na barra lateral esquerda do painel de controlo, clique em Google Cloud Storage e, em seguida, em Definições. Selecione a guia INTEROPERABILIDADE. Se ainda não o tiver ativado, clique em Acesso interoperável. Em seguida, clique no botão CRIAR UMA CHAVE para criar.

GCP Access keys for your user account Chaves de acesso ao GCP para a sua conta de utilizador

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

Implantar o Milvus

Agora o cluster do Kubernetes está pronto. Vamos implantar o Milvus agora mesmo.

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

Nos comandos anteriores, adicionamos o repositório de gráficos do Milvus Helm localmente e atualizamos o repositório para buscar os gráficos mais recentes. Em seguida, instalamos uma instância do Milvus e chamamos-lhe my-release.

Observe o valor config service.type, que indica que gostaríamos de expor a instância do Milvus por meio de um balanceador de carga Layer-4.

Se quiser expor sua instância do Milvus por meio de um balanceador de carga de Camada 7, leia isto.

Verificar a implantação

Quando todos os pods estiverem em execução, execute o seguinte comando para obter o endereço IP externo.

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

Olá Milvus

Consulte Hello Milvus, altere o valor do host para o endereço IP externo e, em seguida, execute o código.

O que vem a seguir

Se você quiser aprender como implantar o Milvus em outras nuvens:

Traduzido porDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?