Scalare un cluster Milvus
Milvus supporta la scalabilità orizzontale dei suoi componenti. Ciò significa che è possibile aumentare o diminuire il numero di nodi worker di ciascun tipo in base alle proprie esigenze.
Questo argomento descrive come ridimensionare e scalare un cluster Milvus. Si presuppone che sia già stato installato un cluster Milvus prima di scalare. Inoltre, si consiglia di familiarizzare con l'architettura di Milvus prima di iniziare.
Questa esercitazione prende come esempio il ridimensionamento di tre nodi di query. Per scalare altri tipi di nodi, sostituire queryNode
con il tipo di nodo corrispondente nella riga di comando.
Per informazioni su come scalare un cluster con Milvus Operator, consultare Scala un cluster con Milvus Operator.
Che cos'è il ridimensionamento orizzontale?
Il ridimensionamento orizzontale comprende il ridimensionamento in uscita e il ridimensionamento in entrata.
Ridimensionamento
Lo scaling out si riferisce all'aumento del numero di nodi in un cluster. A differenza dello scaling up, lo scaling out non richiede l'allocazione di più risorse a un nodo del cluster. Invece, lo scaling out espande il cluster orizzontalmente aggiungendo altri nodi.
Scalare
Scalare
Secondo l'architettura Milvus, i nodi worker stateless includono il nodo di interrogazione, il nodo dati, il nodo indice e il proxy. Pertanto, è possibile scalare questo tipo di nodi in base alle esigenze aziendali e agli scenari applicativi. È possibile ridimensionare il cluster Milvus manualmente o automaticamente.
In genere, è necessario ridimensionare il cluster Milvus creato se è sovrautilizzato. Di seguito sono riportate alcune situazioni tipiche in cui potrebbe essere necessario ridimensionare il cluster Milvus:
- L'utilizzo della CPU e della memoria è elevato per un certo periodo di tempo.
- Il throughput delle query diventa più elevato.
- È necessaria una maggiore velocità di indicizzazione.
- È necessario elaborare volumi massicci di grandi insiemi di dati.
- È necessario garantire un'elevata disponibilità del servizio Milvus.
Scalare in
Per scalare si intende diminuire il numero di nodi in un cluster. In genere, è necessario scalare il cluster Milvus creato se è sottoutilizzato. Di seguito sono riportate alcune situazioni tipiche in cui è necessario scalare il cluster Milvus:
- L'utilizzo della CPU e della memoria è basso per un certo periodo di tempo.
- Il throughput delle query si riduce.
- Non è richiesta una maggiore velocità di indicizzazione.
- Le dimensioni del set di dati da elaborare sono ridotte.
Prerequisiti
Eseguire kubectl get pods
per ottenere un elenco dei componenti e del loro stato di funzionamento nel cluster Milvus creato.
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
Scalare un cluster Milvus
È possibile scalare il cluster Milvus manualmente o automaticamente. Se l'autoscaling è abilitato, il cluster Milvus si riduce o si espande automaticamente quando il consumo di risorse di CPU e memoria raggiunge il valore impostato.
Attualmente, Milvus 2.1.0 supporta solo il ridimensionamento manuale.
Ridimensionamento
Eseguire helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values
per scalare manualmente il nodo di query.
Se l'operazione ha successo, vengono aggiunti tre pod in esecuzione sul nodo di query, come mostrato nell'esempio seguente.
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
Scalare all'interno
Eseguire helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values
per scalare il nodo di query.
In caso di successo, i tre pod in esecuzione sul nodo di query vengono ridotti a uno, come mostrato nell'esempio seguente.
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
Cosa fare dopo
Se si desidera imparare a monitorare i servizi Milvus e a creare avvisi:
Se siete pronti a distribuire il vostro cluster su cloud:
Se state cercando istruzioni su come allocare le risorse: