Utilizza Pulsar come coda di messaggi di Milvus
Apache Pulsar è uno dei backend per la coda di messaggi (WAL) supportati da Milvus. In Milvus 3.x, Woodpecker è la coda di messaggi predefinita; Pulsar rimane pienamente supportato per gli utenti che lo preferiscono. Pulsar viene utilizzato principalmente con Milvus Distributed (cluster); le distribuzioni standalone utilizzano in genere Woodpecker integrato o RocksMQ.
Compatibilità tra versioni
| Versione di Milvus | Versione di Pulsar supportata | Predefinita |
|---|---|---|
| 2.5.x e successive | Pulsar v3 (consigliata) o Pulsar v2 | Pulsar v3 (tramite Helm / Milvus Operator) |
| 2.4.x e precedenti | Pulsar v2 | Pulsar v2 |
A partire da Milvus 2.5, il chart Helm di Milvus e Milvus Operator distribuiscono Pulsar v3 per impostazione predefinita; Pulsar v2 rimane compatibile. Vedere Aggiornamento di Pulsar dalla versione v2 alla v3 e Continuare a utilizzare Pulsar v2.
Distribuire un cluster Milvus con Pulsar utilizzando Helm
Installazione
Per distribuire un cluster Milvus che utilizza Pulsar integrato (anziché Woodpecker), installare il chart Helm con Streaming Node abilitato:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.1 \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
--set indexNode.enabled=false
Su Kubernetes v1.25 e versioni successive, se si riscontrano problemi con l'API PodDisruptionBudget (PDB) derivanti dal sub-chart di Pulsar integrato, disabilitare le policy PDB di Pulsar:
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
Configurazione
Per collegare Milvus a un servizio Pulsar esterno, disabilitare Pulsar integrato e abilitare externalPulsar in un override di values.yaml:
pulsarv3:
enabled: false
externalPulsar:
enabled: true
host: <your_pulsar_host>
port: 6650
maxMessageSize: "5242880" # 5 MB, maximum size of each message
tenant: public
namespace: default
helm install my-release zilliztech/milvus -f values.yaml
Disinstallazione
helm uninstall my-release
Se è stato utilizzato il Pulsar integrato e si desidera rimuovere i dati persistenti, eliminare i PVC di Pulsar (denominati my-release-pulsarv3-*):
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
Distribuire un cluster Milvus con Pulsar utilizzando Milvus Operator
Con Milvus Operator, configurare Pulsar in spec.dependencies.pulsar (supportato solo per i cluster Milvus). pulsar supporta external e inCluster.
Pulsar esterno
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
external: true
endpoints:
- 192.168.1.1:6650
components: {}
config: {}
Pulsar interno (all’interno del cluster)
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
inCluster:
values:
components:
autorecovery: false
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
broker:
replicaCount: 1
configData:
autoSkipNonRecoverableData: "true"
managedLedgerDefaultEnsembleSize: "1"
managedLedgerDefaultWriteQuorum: "1"
managedLedgerDefaultAckQuorum: "1"
proxy:
replicaCount: 1
components: {}
config: {}
Applicare la configurazione (supponendo che il file sia milvuscluster.yaml):
kubectl apply -f milvuscluster.yaml
Disinstallazione
kubectl delete milvus my-release
Note
- Aggiornamento dalla versione 2.5.x alla 2.6.x: limitazioni relative alla coda dei messaggi: durante l'aggiornamento a Milvus v3.0.1, è necessario mantenere la coda dei messaggi attualmente in uso. Il passaggio a sistemi di coda dei messaggi diversi durante l'aggiornamento non è supportato. Il supporto per la modifica dei sistemi di coda dei messaggi sarà disponibile nelle versioni future. Se si utilizza Pulsar e si desidera mantenerlo, non modificare la coda dei messaggi durante l’aggiornamento.
- Pulsar v2 → v3: consultare Aggiornamento di Pulsar dalla v2 alla v3; per rimanere alla v2, consultare Continuare a utilizzare Pulsar v2.