Mise à l'échelle d'un cluster Milvus
Milvus prend en charge la mise à l'échelle horizontale de ses composants. Cela signifie que vous pouvez augmenter ou diminuer le nombre de nœuds de travail de chaque type en fonction de vos besoins.
Cette rubrique décrit comment mettre à l'échelle un cluster Milvus. Nous supposons que vous avez déjà installé un cluster Milvus avant de procéder à la mise à l'échelle. Nous vous recommandons également de vous familiariser avec l'architecture Milvus avant de commencer.
Ce didacticiel prend pour exemple la mise à l'échelle de trois nœuds de requête. Pour mettre à l'échelle d'autres types de nœuds, remplacez queryNode
par le type de nœud correspondant dans la ligne de commande.
Pour plus d'informations sur la mise à l'échelle d'un cluster avec Milvus Operator, reportez-vous à la section Mise à l'échelle d'un cluster avec Milvus Operator.
Qu'est-ce que la mise à l'échelle horizontale ?
La mise à l'échelle horizontale comprend la mise à l'échelle vers le bas et la mise à l'échelle vers le haut.
Mise à l'échelle
La mise à l'échelle consiste à augmenter le nombre de nœuds dans un cluster. Contrairement à la mise à l'échelle, la mise à l'échelle n'exige pas que vous allouiez davantage de ressources à un nœud de la grappe. Au contraire, la mise à l'échelle étend la grappe horizontalement en ajoutant des nœuds supplémentaires.
Scaleout
Mise à l'échelle
Selon l'architecture Milvus, les nœuds de travail sans état comprennent le nœud de requête, le nœud de données, le nœud d'index et le proxy. Par conséquent, vous pouvez étendre ce type de nœuds en fonction des besoins de votre entreprise et des scénarios d'application. La mise à l'échelle du cluster Milvus peut se faire manuellement ou automatiquement.
En règle générale, vous devrez redimensionner le cluster Milvus que vous avez créé s'il est surutilisé. Vous trouverez ci-dessous quelques situations typiques dans lesquelles vous pourriez avoir besoin de redimensionner le cluster Milvus :
- L'utilisation de l'UC et de la mémoire est élevée pendant un certain temps.
- Le débit des requêtes augmente.
- Une vitesse d'indexation plus élevée est nécessaire.
- Des volumes massifs de grands ensembles de données doivent être traités.
- La haute disponibilité du service Milvus doit être assurée.
Mise à l'échelle
La mise à l'échelle consiste à diminuer le nombre de nœuds dans un cluster. En général, vous devrez mettre à l'échelle le cluster Milvus que vous avez créé s'il est sous-utilisé. Vous trouverez ci-dessous quelques situations typiques dans lesquelles vous devrez procéder à une mise à l'échelle du cluster Milvus :
- L'utilisation de l'UC et de la mémoire est faible pendant un certain temps.
- Le débit des requêtes diminue.
- Une vitesse d'indexation plus élevée n'est pas nécessaire.
- La taille de l'ensemble de données à traiter est faible.
Conditions préalables
Exécutez kubectl get pods
pour obtenir une liste des composants et de leur état de fonctionnement dans le cluster Milvus que vous avez créé.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 1m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 1m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 1m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 1m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 1m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 1m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 1m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 1m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 1m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 1m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 1m
Mise à l'échelle d'un cluster Milvus
Vous pouvez faire évoluer votre cluster Milvus manuellement ou automatiquement. Si la mise à l'échelle automatique est activée, le cluster Milvus se réduit ou s'étend automatiquement lorsque la consommation des ressources CPU et mémoire atteint la valeur que vous avez définie.
Actuellement, Milvus 2.1.0 ne prend en charge que la mise à l'échelle manuelle.
Mise à l'échelle
Exécutez helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values
pour mettre à l'échelle manuellement le nœud de requête.
En cas de succès, trois pods en cours d'exécution sur le nœud de requête sont ajoutés comme indiqué dans l'exemple suivant.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-czq9f 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-jcdcn 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
Mise à l'échelle
Exécutez helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values
pour mettre à l'échelle le nœud de requête.
En cas de succès, les trois pods en cours d'exécution sur le nœud de requête sont réduits à un seul, comme le montre l'exemple suivant.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
Prochaines étapes
Si vous souhaitez apprendre à surveiller les services Milvus et à créer des alertes :
Si vous êtes prêt à déployer votre cluster sur des clouds :
- Apprendre à déployer Milvus sur Amazon EKS avec Terraform
- Apprendre à déployer le cluster Milvus sur GCP avec Kubernetes
- Apprendre à déployer Milvus sur Microsoft Azure avec Kubernetes
Si vous cherchez des instructions sur la façon d'allouer des ressources :