Mise à niveau du cluster Milvus avec Milvus Operator

Ce guide décrit comment mettre à niveau votre cluster Milvus de la version 2.5.x à la version 2.6.16 à l'aide de Milvus Operator.

Avant de commencer

Nouveautés de la version 2.6.16

La mise à niveau de Milvus 2.5.x vers 2.6.16 implique des changements architecturaux importants :

  • Consolidation des coordinateurs: Les anciens coordinateurs séparés (dataCoord, queryCoord, indexCoord) ont été consolidés en un seul. mixCoord
  • Nouveaux composants: Introduction d'un nœud de streaming pour un meilleur traitement des données
  • Suppression de composants: indexNode supprimé et consolidé

Ce processus de mise à niveau garantit une migration correcte vers la nouvelle architecture. Pour plus d'informations sur les modifications de l'architecture, voir l'aperçu de l'architecture Milvus.

Exigences

Configuration requise :

  • Cluster Kubernetes avec Milvus déployé via Milvus Operator
  • kubectl configuré pour accéder à votre cluster
  • Helm 3.x installé

Conditions de compatibilité :

  • Milvus v2.6.0-rc1 n'est pas compatible avec v2.6.16. Les mises à niveau directes à partir des versions candidates ne sont pas prises en charge.
  • Si vous utilisez actuellement la version 2.6.0-rc1 et que vous devez préserver vos données, veuillez vous référer à ce guide de la communauté pour obtenir de l'aide à la migration.
  • Vous devez passer à la version 2.5.16 ou à une version ultérieure avec mixCoord activé avant de passer à la version 2.6.16.

Limitations de la file d'attente des messages: Lors de la mise à niveau vers Milvus v2.6.16, 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 prochaines versions.

Processus de mise à niveau

Etape 1 : Mise à niveau de Milvus Operator

Commencer par mettre à niveau votre Milvus Operator vers la version 1.3.0 :

helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator

Vérifier la mise à niveau de l'opérateur :

kubectl -n milvus-operator get pods

Etape 2 : Mise à niveau de votre cluster Milvus

2.1 Vérifier la configuration actuelle du coordinateur

Vérifiez si votre cluster utilise déjà mixCoord:

kubectl get pods

Si vous voyez des pods coordinateurs séparés (datacoord, querycoord, indexcoord) à la place, vous devez activer mixCoord dans l'étape suivante.

2.2 Mise à jour vers la version 2.5.16 avec mixCoord

Sautez cette étape si votre cluster fonctionne déjà avec la version 2.5.16 ou une version plus récente et que mixCoord est activé.

Créez un fichier de configuration milvusupgrade.yaml pour activer mixCoord et passer à la version 2.5.16 :

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release  # Replace with your actual release name
spec:
  components:
    mixCoord:
      replicas: 1
    image: milvusdb/milvus:v2.5.16

Appliquer la configuration :

kubectl patch -f milvusupgrade.yaml --patch-file milvusupgrade.yaml --type merge

Attendez la fin de l'opération :

# Verify all pods are ready
kubectl get pods

2.3 Mise à niveau vers la version 2.6.16

Une fois que la version 2.5.16 fonctionne correctement avec mixCoord, passez à la version 2.6.16 :

Mettez à jour votre fichier de configuration (milvusupgrade.yaml dans cet exemple) :

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release  # Replace with your actual release name
spec:
  components:
    image: milvusdb/milvus:v2.6.16

Appliquer la mise à niveau finale :

kubectl patch -f milvusupgrade.yaml --patch-file milvusupgrade.yaml --type merge

Vérifier la mise à niveau

Confirmez que votre cluster exécute la nouvelle version :

# Check pod status
kubectl get pods

Pour obtenir une assistance supplémentaire, consultez la documentation Milvus ou le forum de la communauté.