Utiliser Pulsar comme file d'attente de messages Milvus
Apache Pulsar est l'un des backends de file d'attente de messages (WAL) pris en charge par Milvus. Dans Milvus 3.x, Woodpecker est la file d'attente de messages par défaut ; Pulsar reste toutefois entièrement pris en charge pour les utilisateurs qui le préfèrent. Pulsar est principalement utilisé avec Milvus Distributed (cluster) ; les déploiements autonomes utilisent généralement Woodpecker intégré ou RocksMQ.
Compatibilité des versions
| Version de Milvus | Version de Pulsar prise en charge | Par défaut |
|---|---|---|
| 2.5.x et versions ultérieures | Pulsar v3 (recommandée) ou Pulsar v2 | Pulsar v3 (via Helm / Milvus Operator) |
| 2.4.x et antérieures | Pulsar v2 | Pulsar v2 |
Depuis Milvus 2.5, le chart Helm de Milvus et Milvus Operator déploient Pulsar v3 par défaut ; Pulsar v2 reste compatible. Voir Mettre à niveau Pulsar de la version 2 à la version 3 et Continuer à utiliser Pulsar v2.
Déployer un cluster Milvus avec Pulsar à l'aide de Helm
Installation
Pour déployer un cluster Milvus utilisant Pulsar intégré (au lieu de Woodpecker), installez le chart Helm avec le nœud de streaming activé :
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.0 \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
--set indexNode.enabled=false
Sur Kubernetes v1.25 et versions ultérieures, si vous rencontrez des problèmes liés à l’API PodDisruptionBudget (PDB) provenant du sous-chart Pulsar intégré, désactivez les politiques PDB de 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
Configuration
values.yaml Pour connecter Milvus à un service Pulsar externe, désactivez le Pulsar intégré et activez l'option « externalPulsar » dans une surc :
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
Désinstallation
helm uninstall my-release
Si vous avez utilisé le Pulsar intégré et que vous souhaitez supprimer ses données persistantes, supprimez les PVC Pulsar (nommés my-release-pulsarv3-*) :
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
Déployer un cluster Milvus avec Pulsar à l’aide de Milvus Operator
Avec Milvus Operator, configurez Pulsar sous spec.dependencies.pulsar (pris en charge uniquement pour les clusters Milvus). pulsar prend en charge external et inCluster.
Pulsar externe
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 interne (au sein du 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: {}
Appliquez la configuration (en supposant que le fichier soit milvuscluster.yaml) :
kubectl apply -f milvuscluster.yaml
Désinstallation
kubectl delete milvus my-release
Remarques
- Mise à niveau de la version 2.5.x vers la version 2.6.x : limitations de la file d’attente de messages: lors de la mise à niveau vers Milvus v3.0.0, vous devez conserver votre choix actuel de file d’attente de messages. Le passage d’un système de file d’attente de messages à un autre pendant la mise à niveau n’est pas pris en charge. La prise en charge du changement de système de file d’attente de messages sera disponible dans les versions futures. Si vous utilisez Pulsar et souhaitez le conserver, ne modifiez pas la file d’attente de messages pendant la mise à niveau.
- Pulsar v2 → v3 : consultez la section Mise à niveau de Pulsar de la v2 à la v3; pour rester en v2, consultez la section Continuer à utiliser Pulsar v2.