Changement de type MQ pour le cluster Milvus
Cette rubrique décrit comment changer le type de file d'attente de messages (MQ) pour un déploiement de cluster Milvus existant. Milvus prend en charge la commutation MQ en ligne entre Pulsar, Kafka et Woodpecker sans temps d'arrêt.
Cette fonctionnalité est en attente de publication et peut être modifiée. Veuillez contacter le support Milvus si vous souhaitez l'essayer ou si vous avez des questions.
Conditions préalables
- Une instance de cluster Milvus en cours d'exécution installée via Milvus Operator ou Helm.
- L'instance Milvus a été mise à niveau vers la dernière version qui prend en charge cette fonctionnalité Switch MQ.
Passage de Pulsar/Kafka à Woodpecker (MinIO)
Suivre les étapes suivantes pour passer du type MQ Pulsar ou Kafka à Woodpecker avec le stockage MinIO.
Etape 1 : Vérifier que l'instance Milvus est en cours d'exécution
Avant de procéder au changement, assurez-vous que votre instance de cluster Milvus fonctionne correctement. Vous pouvez le vérifier en créant une collection de test, en insérant des données et en exécutant une requête.
Étape 2 : (Facultatif) Vérifier la configuration de Woodpecker
La configuration par défaut de Milvus définit déjà le type de stockage Woodpecker sur MinIO, de sorte qu'aucune configuration supplémentaire n'est requise dans la plupart des cas.
Toutefois, si vous avez précédemment personnalisé la configuration de Woodpecker, vous devez vous assurer que woodpecker.storage.type est défini sur minio. Mettez à jour la configuration Milvus sans modifier la valeur mqType:
woodpecker:
storage:
type: minio
- Pour Helm, se reporter à Configurer Milvus avec les cartes Helm pour obtenir des instructions sur la mise à jour de la configuration.
- Pour Milvus Operator, voir Configurer Milvus avec Milvus Operator pour obtenir des instructions sur la mise à jour de la configuration.
Étape 3 : Exécuter le commutateur MQ
Exécuter la commande suivante pour déclencher le passage à Woodpecker :
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Remplacer <mixcoord_addr> par l'adresse réelle de votre service MixCoord.
Étape 4 : Vérifier que le basculement est terminé
Le processus de basculement se termine automatiquement. Surveillez les messages clés suivants dans les journaux Milvus pour confirmer que le basculement est terminé :
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
Dans les messages ci-dessus, <MQ1> est le type MQ source (par exemple, pulsar ou kafka) et <MQ2> est le type MQ cible (woodpecker).
- Le premier message indique que le basculement WAL de la source vers la cible est terminé.
- Le deuxième message indique que tous les canaux physiques ont été commutés.
- Le troisième message indique que la configuration de
mq.typea été mise à jour dans etcd.
Passer de Woodpecker (MinIO) à Pulsar ou Kafka
Suivez ces étapes pour repasser du type MQ Woodpecker à Pulsar ou Kafka.
Étape 1 : Vérifier que l'instance Milvus est en cours d'exécution
Avant de procéder au changement, assurez-vous que votre instance de cluster Milvus fonctionne correctement.
Étape 2 : Configurer le MQ cible
Avant de déclencher la commutation, vous devez vous assurer que le service MQ cible (Pulsar ou Kafka) est disponible et que sa configuration d'accès est rendue dans la configuration Milvus.
Les étapes exactes de cette section dépendent de l'utilisation d'un service MQ interne (groupé) ou externe.
Option A : Pulsar/Kafka interne (groupé avec Helm)
Si vous utilisez le service Pulsar ou Kafka déployé par Helm, mettez à jour votre version de Helm pour activer le service MQ cible et désactiver Woodpecker. Le drapeau streaming.enabled=true est nécessaire pour activer le nœud de streaming, qui est une condition préalable à la fonctionnalité Switch MQ. Par exemple, pour passer à Pulsar :
helm upgrade -i my-release milvus/milvus \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
-f values.yaml
Après la mise à niveau, vérifier que la configuration d'accès MQ cible a été rendue dans la configuration Milvus. Par exemple, pour Pulsar :
pulsar:
address: <pulsar-proxy-address>
port: 6650
Option B : Pulsar/Kafka interne (géré par Milvus Operator)
Si vous utilisez Milvus Operator, mettez à jour la ressource personnalisée Milvus pour inclure la configuration d'accès MQ cible. Voir Configurer Milvus avec Milvus Operator pour plus de détails sur la mise à jour de la configuration Milvus.
Option C : Pulsar/Kafka externe
Si vous utilisez un service Pulsar ou Kafka externe, il n'est pas nécessaire de modifier le site mqType. Il suffit d'ajouter la configuration d'accès MQ externe à votre site values.yaml et de redémarrer l'instance Milvus pour rendre la configuration.
Étape 3 : Exécuter le commutateur MQ
Exécutez la commande suivante pour déclencher le passage à Pulsar (remplacez pulsar par kafka si vous passez à Kafka) :
curl -X POST http://<mixcoord_addr>:9091/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "pulsar"}'
Remplacez <mixcoord_addr> par l'adresse réelle de votre service MixCoord.
Étape 4 : Vérifier que le basculement est terminé
Le processus de basculement se termine automatiquement. Surveillez les messages clés suivants dans les journaux Milvus pour confirmer que le basculement est terminé :
WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd
Dans les messages ci-dessus, <MQ1> est le type MQ source (woodpecker) et <MQ2> est le type MQ cible (par exemple, pulsar ou kafka).
- Le premier message indique que le basculement WAL de la source vers la cible est terminé.
- Le deuxième message indique que tous les canaux physiques ont été commutés.
- Le troisième message indique que la configuration de
mq.typea été mise à jour dans etcd.