milvus-logo
LFAI
Casa
  • Iniziare

Eseguire Milvus in Kubernetes con Helm

Questa pagina illustra come avviare un'istanza di Milvus in Kubernetes utilizzando i grafici di Milvus Helm.

Panoramica

Helm utilizza un formato di packaging chiamato chart. Un grafico è una raccolta di file che descrivono un insieme correlato di risorse Kubernetes. Milvus fornisce una serie di grafici per aiutare a distribuire le dipendenze e i componenti di Milvus.

Prerequisiti

  • Installare Helm CLI.

  • Creare un cluster K8s.

  • Installare una StorageClass. È possibile verificare la StorageClass installata come segue.

    $ kubectl get sc
    
    NAME                  PROVISIONER                  RECLAIMPOLICY    VOLUMEBIINDINGMODE    ALLOWVOLUMEEXPANSION     AGE
    standard (default)    k8s.io/minikube-hostpath     Delete           Immediate             false 
    
  • Verificare i requisiti hardware e software prima dell'installazione.

  • Prima di installare Milvus, si consiglia di utilizzare Milvus Sizing Tool per stimare i requisiti hardware in base alle dimensioni dei dati. Questo aiuta a garantire prestazioni e allocazione delle risorse ottimali per l'installazione di Milvus.

Se si riscontrano problemi nell'estrazione dell'immagine, contattateci all'indirizzo community@zilliz.com con i dettagli del problema e vi forniremo il supporto necessario.

Installare Milvus Helm Chart

Prima di installare Milvus Helm Charts, è necessario aggiungere il repository Milvus Helm.

$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

Il repository di Milvus Helm Charts all'indirizzo https://github.com/milvus-io/milvus-helm è stato archiviato ed è possibile ottenere ulteriori aggiornamenti da https://github.com/zilliztech/milvus-helm come segue:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

Il repo archiviato è ancora disponibile per i grafici fino alla versione 4.0.31. Per le versioni successive, utilizzare invece il nuovo repo.

Quindi prelevare i grafici di Milvus dal repository come segue:

$ helm repo update

È sempre possibile eseguire questo comando per recuperare i grafici Milvus Helm più recenti.

Installazione online

1. Distribuire un cluster Milvus

Una volta installato il grafico Helm, è possibile avviare Milvus su Kubernetes. Questa sezione vi guiderà attraverso le fasi di avvio di Milvus.

$ helm install my-release milvus/milvus

Nel comando precedente, my-release è il nome della release e milvus/milvus è il repository del grafico installato localmente. Per usare un nome diverso, sostituire my-release con quello che si ritiene opportuno.

Il comando precedente distribuisce un cluster Milvus con i suoi componenti e le sue dipendenze utilizzando le configurazioni predefinite. Per personalizzare queste impostazioni, si consiglia di usare Milvus Sizing Tool per regolare le configurazioni in base alle dimensioni effettive dei dati e scaricare il file YAML corrispondente. Per saperne di più sui parametri di configurazione, consultare la lista di controllo delle configurazioni del sistema Milvus.

  • Il nome della release deve contenere solo lettere, numeri e trattini. I punti non sono ammessi nel nome della release.
  • La linea di comando predefinita installa la versione cluster di Milvus durante l'installazione di Milvus con Helm. Per l'installazione di Milvus standalone sono necessarie ulteriori impostazioni.
  • Secondo la guida alla migrazione delle API deprecate di Kubernetes, la versione API policy/v1beta1 di PodDisruptionBudget non viene più utilizzata a partire dalla v1.25. Si suggerisce di migrare i manifesti e i client API per utilizzare invece la versione API policy/v1.
    Come soluzione per gli utenti che utilizzano ancora la versione API policy/v1beta1 di PodDisruptionBudget su Kubernetes v1.25 e successivi, è possibile eseguire il seguente comando per installare Milvus:
    . helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
  • Per ulteriori informazioni, consultare Milvus Helm Chart e Helm.

2. Controllare lo stato del cluster Milvus

Eseguite il seguente comando per verificare lo stato di tutti i pod nel vostro cluster Milvus.

$ kubectl get pods

Una volta che tutti i pod sono in esecuzione, l'output del comando precedente dovrebbe essere simile al seguente:

NAME                                             READY  STATUS   RESTARTS  AGE
my-release-etcd-0                                1/1    Running   0        3m23s
my-release-etcd-1                                1/1    Running   0        3m23s
my-release-etcd-2                                1/1    Running   0        3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm      1/1    Running   0        3m23s
my-release-milvus-indexnode-5c5f7b5bd9-l8hjg     1/1    Running   0        3m24s
my-release-milvus-mixcoord-7fb9488465-dmbbj      1/1    Running   0        3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv          1/1    Running   0        3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg     1/1    Running   0        3m24s
my-release-minio-0                               1/1    Running   0        3m23s
my-release-minio-1                               1/1    Running   0        3m23s
my-release-minio-2                               1/1    Running   0        3m23s
my-release-minio-3                               1/1    Running   0        3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc  1/1    Running   0        3m24s
my-release-pulsar-bookkeeper-0                   1/1    Running   0        3m23s
my-release-pulsar-bookkeeper-1                   1/1    Running   0        98s
my-release-pulsar-broker-556ff89d4c-2m29m        1/1    Running   0        3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v         1/1    Running   0        3m23s
my-release-pulsar-zookeeper-0                    1/1    Running   0        3m23s
my-release-pulsar-zookeeper-metadata-98zbr       0/1   Completed  0        3m24s

3. Inoltrare una porta locale a Milvus

Eseguite il seguente comando per ottenere la porta su cui il vostro cluster Milvus serve.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

L'output mostra che l'istanza di Milvus serve sulla porta predefinita 19530.

Se avete distribuito Milvus in modalità standalone, cambiate il nome del pod da my-release-milvus-proxy-xxxxxxxxxx-xxxxx a my-release-milvus-xxxxxxxxxx-xxxxx.

Quindi, eseguite il seguente comando per inoltrare una porta locale alla porta su cui Milvus serve.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

Facoltativamente, si può usare :19530 invece di 27017:19530 nel comando precedente per lasciare che kubectl assegni una porta locale al posto nostro, in modo da non dover gestire conflitti di porte.

Per impostazione predefinita, il port-forwarding di kubectl ascolta solo su localhost. Usate il flag address se volete che Milvus ascolti su uno o tutti gli indirizzi IP selezionati. Il comando seguente fa sì che il port-forward ascolti tutti gli indirizzi IP della macchina host.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

Installazione offline

Se vi trovate in un ambiente con limitazioni di rete, seguite la procedura di questa sezione per avviare un cluster Milvus.

1. Ottenere il manifesto di Milvus

Eseguite il seguente comando per ottenere il manifest di Milvus.

$ helm template my-release milvus/milvus > milvus_manifest.yaml

Il comando precedente esegue il rendering dei modelli di grafico per un cluster Milvus e salva l'output in un file di manifest chiamato milvus_manifest.yaml. Utilizzando questo manifest, è possibile installare un cluster Milvus con i suoi componenti e le sue dipendenze in pod separati.

  • Per installare un'istanza di Milvus in modalità standalone, dove tutti i componenti di Milvus sono contenuti in un singolo pod, si deve invece eseguire helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false milvus/milvus > milvus_manifest.yaml per eseguire il rendering dei modelli di grafico per un'istanza di Milvus in modalità standalone.
  • Per modificare le configurazioni di Milvus, scaricare il modello value.yaml scaricare il modello, inserirvi le impostazioni desiderate e utilizzare helm template -f values.yaml my-release milvus/milvus > milvus_manifest.yaml per eseguire il rendering del manifest di conseguenza.

2. Scaricare lo script di estrazione delle immagini

Lo script di estrazione delle immagini è sviluppato in Python. È necessario scaricare lo script insieme alle sue dipendenze nel file requirement.txt.

$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py

3. Estrarre e salvare le immagini

Eseguire il seguente comando per estrarre e salvare le immagini richieste.

$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml

Le immagini vengono estratte in una sottocartella denominata images nella directory corrente.

4. Caricare le immagini

Ora è possibile caricare le immagini sugli host nell'ambiente con restrizioni di rete come segue:

$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done

5. Distribuire Milvus

$ kubectl apply -f milvus_manifest.yaml

A questo punto, è possibile seguire i passaggi 2 e 3 dell'installazione online per controllare lo stato del cluster e inoltrare una porta locale a Milvus.

Aggiornamento del cluster Milvus in esecuzione

Eseguite il seguente comando per aggiornare il cluster Milvus in esecuzione alla versione più recente:

$ helm repo update
$ helm upgrade my-release zilliztech/milvus

Disinstallare Milvus

Eseguite il seguente comando per disinstallare Milvus.

$ helm uninstall my-release

Cosa succede dopo

Dopo aver installato Milvus in Docker, è possibile:

Tradotto daDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?