🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

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 repository 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 funzione, 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

È anche possibile accedere alla Milvus WebUI all'indirizzo http://127.0.0.1:9091/webui/ per saperne di più sulla propria istanza Milvus. Per maggiori dettagli, consultare Milvus WebUI.

3. Inoltrare una porta locale a Milvus

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

$ 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 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 dell'utente, 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 del computer host.

Accesso all'interfaccia web di Milvus

Milvus viene fornito con uno strumento GUI integrato, chiamato Milvus WebUI, a cui si può accedere tramite il browser. Milvus WebUI migliora l'osservabilità del sistema con un'interfaccia semplice e intuitiva. Con Milvus Web UI si possono osservare le statistiche e le metriche dei componenti e delle dipendenze di Milvus, controllare i dettagli del database e della raccolta ed elencare le configurazioni dettagliate di Milvus. Per maggiori informazioni su Milvus Web UI, vedere Milvus WebUI.

Per abilitare l'accesso all'interfaccia web di Milvus, è necessario effettuare il port-forward del pod proxy su una porta locale.

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

Ora è possibile accedere all'interfaccia web di Milvus all'indirizzo http://localhost:27018.

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

Eseguire 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 daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?