Eseguire Milvus su Kubernetes con Helm
Questa pagina illustra come avviare un'istanza di Milvus in Kubernetes utilizzando i chart Helm di Milvus.
Panoramica
Helm utilizza un formato di pacchettizzazione denominato "chart". Un chart è un insieme di file che descrivono un insieme correlato di risorse Kubernetes. Milvus fornisce una serie di chart per facilitare la distribuzione delle dipendenze e dei componenti di Milvus.
Prerequisiti
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 falseVerificare i requisiti hardware e software prima dell’installazione.
Prima di installare Milvus, si consiglia di utilizzare lo strumento Milvus Sizing Tool per stimare i requisiti hardware in base alla dimensione dei dati. Ciò contribuisce a garantire prestazioni ottimali e un'allocazione ottimale delle risorse per l'installazione di Milvus.
Se si riscontrano problemi durante il download dell'immagine, contattarci all'indirizzo community@zilliz.com fornendo i dettagli del problema e forniremo l'assistenza necessaria.
Installare il Helm Chart di Milvus
Prima di installare gli Helm Chart di Milvus, è necessario aggiungere il repository Helm di Milvus.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
Il repository dei grafici Helm di Milvus all'indirizzo https://github.com/milvus-io/milvus-helm è stato archiviato. Ora utilizziamo il nuovo repository all'indirizzo https://github.com/zilliztech/milvus-helm. Il repository archiviato è ancora disponibile per i grafici fino alla versione 4.0.31, ma per le versioni successive è necessario utilizzare il nuovo repository.
Quindi, scaricate i chart Milvus dal repository come segue:
$ helm repo update
È sempre possibile eseguire questo comando per scaricare i chart Helm Milvus più recenti.
Installazione online
1. Distribuire un cluster Milvus
Una volta installato il chart Helm, è possibile avviare Milvus su Kubernetes. Questa sezione illustra come distribuire un cluster Milvus.
Preferisci invece una distribuzione in modalità standalone?
Se preferisci distribuire Milvus in modalità standalone (singolo nodo) per lo sviluppo o il test, utilizza questo comando:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.24 \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
Nota: la modalità autonoma utilizza Woodpecker come coda di messaggi predefinita e abilita il componente Streaming Node. Per ulteriori dettagli, consultare la Panoramica dell'architettura e Utilizzo di Woodpecker.
Distribuzione del cluster Milvus:
Il comando seguente distribuisce un cluster Milvus con impostazioni ottimizzate per la versione 2.6.24, utilizzando Woodpecker come coda di messaggi consigliata:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.24 \
--set pulsarv3.enabled=false \
--set woodpecker.enabled=true \
--set streaming.enabled=true \
--set indexNode.enabled=false
Cosa fa questo comando:
- Utilizza Woodpecker come coda dei messaggi (consigliato per ridurre la manutenzione)
- Abilita il nuovo componente Streaming Node per migliorare le prestazioni
- Disabilita il nodo di indicizzazione legacy (la funzionalità è ora gestita dal nodo dati)
- Disabilita Pulsar per utilizzare invece Woodpecker
Modifiche all’architettura in Milvus 2.6.x:
- Coda dei messaggi: ora si consiglia Woodpecker (riduce la manutenzione dell’infrastruttura rispetto a Pulsar)
- Nuovo componente: viene introdotto il nodo di streaming, abilitato per impostazione predefinita
- Componenti unificati: il nodo indice e il nodo dati sono stati combinati in un unico nodo dati
Per i dettagli completi sull'architettura, consultare la Panoramica dell'architettura.
Opzioni alternative per la coda dei messaggi:
Se si preferisce utilizzare Pulsar (scelta tradizionale) anziché Woodpecker:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.24 \
--set streaming.enabled=true \
--set indexNode.enabled=false
Passi successivi: Il comando sopra riportato distribuisce Milvus con le configurazioni consigliate. Per l’uso in produzione:
- utilizzare lo strumento di dimensionamento di Milvus per ottimizzare le impostazioni in base alle dimensioni dei dati
- Consultare la lista di controllo delle configurazioni di sistema di Milvus per le opzioni di configurazione avanzate
Note importanti:
- Denominazione delle versioni: utilizzare solo lettere, numeri e trattini (non sono ammessi i punti)
- Kubernetes v1.25+: se si riscontrano problemi con PodDisruptionBudget, utilizzare questa soluzione alternativa:
helm install my-release zilliztech/milvus \ --set pulsar.bookkeeper.pdb.usePolicy=false \ --set pulsar.broker.pdb.usePolicy=false \ --set pulsar.proxy.pdb.usePolicy=false \ --set pulsar.zookeeper.pdb.usePolicy=false
Per ulteriori informazioni, consultare il grafico Helm di Milvus e la documentazione di Helm.
2. Verifica lo stato del cluster Milvus
Verifica che la distribuzione sia andata a buon fine controllando lo stato dei pod:
kubectl get pods
Attendere che tutti i pod mostrino lo stato “Running”. Con la configurazione v2.6.24, si dovrebbero vedere pod simili a:
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-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-milvus-streaming-node-xxxxxxxxx 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
Componenti chiave da verificare:
- Componenti Milvus:
mixcoord,datanode,querynode,proxy,streaming-node - Dipendenze:
etcd(metadati),minio(archiviazione oggetti),pulsar(coda di messaggi)
È inoltre possibile accedere all’interfaccia utente web di Milvus all’indirizzo http://127.0.0.1:9091/webui/ una volta configurato il reindirizzamento delle porte (vedere il passaggio successivo). Per ulteriori dettagli, consultare la documentazione relativa all’interfaccia utente web di Milvus.
3. Connettersi a Milvus
Per connettersi al proprio cluster Milvus dall’esterno di Kubernetes, è necessario configurare il reindirizzamento delle porte.
Configurare il port forwarding:
kubectl port-forward service/my-release-milvus 27017:19530
Questo comando inoltra la porta locale 27017 alla porta Milvus 19530. Dovresti vedere:
Forwarding from 127.0.0.1:27017 -> 19530
Dettagli della connessione:
- Connessione locale:
localhost:27017 - Porta predefinita di Milvus:
19530
Opzioni per il port forwarding:
- Assegnazione automatica della porta locale: utilizzare
:19530invece di27017:19530per consentire a kubectl di scegliere una porta disponibile - Ascolto su tutte le interfacce: Aggiungi
--address 0.0.0.0per consentire connessioni da altri computer:kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530 - Distribuzione autonoma: se si utilizza la modalità autonoma, il nome del servizio rimane lo stesso
Tenere aperto questo terminale mentre si utilizza Milvus. Ora è possibile connettersi a Milvus utilizzando qualsiasi SDK Milvus all’indirizzo localhost:27017.
(Facoltativo) Aggiornamento delle configurazioni di Milvus
È possibile aggiornare le configurazioni del proprio cluster Milvus modificando il file values.yaml e applicandolo nuovamente.
Creare un file
values.yamlcon le configurazioni desiderate.Quanto segue presuppone che si desideri abilitare l'
proxy.http.extraConfigFiles: user.yaml: |+ proxy: http: enabled: truePer le voci di configurazione applicabili, fare riferimento alla sezione Configurazione di sistema.
Applicare il file `
values.yaml`.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
Verificare le configurazioni aggiornate.
helm get values my-releaseL'output dovrebbe mostrare le configurazioni aggiornate.
Accedere a Milvus WebUI
Milvus include uno strumento GUI integrato denominato Milvus WebUI, a cui è possibile accedere tramite il browser. Milvus Web UI migliora l’osservabilità del sistema grazie a un’interfaccia semplice e intuitiva. È possibile utilizzare Milvus Web UI per monitorare le statistiche e le metriche dei componenti e delle dipendenze di Milvus, verificare i dettagli relativi al database e alle raccolte ed elencare le configurazioni dettagliate di Milvus. Per ulteriori dettagli su Milvus WebUI, consultare Milvus WebUI
Per abilitare l'accesso a Milvus WebUI, è necessario eseguire il port forwarding 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 a Milvus WebUI all’indirizzo http://localhost:27018.
Installazione offline
Se ci si trova in un ambiente con restrizioni di rete, seguire la procedura descritta in questa sezione per avviare un cluster Milvus.
1. Ottenere il manifesto di Milvus
Eseguire il comando seguente per ottenere il manifesto di Milvus.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
Il comando sopra riportato genera i modelli di chart per un cluster Milvus e salva l'output in un file di manifesto denominato milvus_manifest.yaml. Utilizzando questo manifesto, è possibile installare un cluster Milvus con i relativi componenti e dipendenze in pod separati.
- Per installare un'istanza di Milvus in modalità standalone, in cui tutti i componenti di Milvus sono contenuti in un unico pod, è necessario eseguire invece
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false zilliztech/milvus > milvus_manifest.yamlper generare i modelli di chart per un'istanza di Milvus in modalità standalone. - Per modificare le configurazioni di Milvus, scaricare il
value.yamlmodello, inserirvi le impostazioni desiderate e utilizzarehelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yamlper generare il manifesto di conseguenza.
2. Scaricare lo script per il recupero delle immagini
Lo script per il download delle immagini è scritto in Python. È necessario scaricare lo script insieme alle sue dipendenze dal 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. Scaricare e salvare le immagini
Eseguire il seguente comando per scaricare e salvare le immagini richieste.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
Le immagini vengono scaricate 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 della procedura di installazione online per verificare lo stato del cluster e inoltrare una porta locale a Milvus.
Aggiornamento del cluster Milvus in esecuzione
Eseguire il seguente comando per aggiornare il cluster Milvus in esecuzione all'ultima versione:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Disinstallazione di Milvus
Eseguire il seguente comando per disinstallare Milvus.
$ helm uninstall my-release
Prossimi passi
Dopo aver installato Milvus in Docker, è possibile:
Consultare la guida " Hello Milvus " per scoprire le funzionalità di Milvus.
Imparare le operazioni di base di Milvus:
Distribuisci il tuo cluster Milvus su cloud:
Scopri Milvus WebUI, un'interfaccia web intuitiva per l'osservabilità e la gestione di Milvus.
Scopri Milvus Backup, uno strumento open source per il backup dei dati di Milvus.
Scopri Birdwatcher, uno strumento open source per il debug di Milvus e gli aggiornamenti dinamici della configurazione.
Scopri Attu, uno strumento GUI open source per una gestione intuitiva di Milvus.