milvus-logo
LFAI
Casa
  • Guida all'amministrazione
    • Scala

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.

Scaleout Scalare

Scaleup 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.
Non si consiglia di ridurre drasticamente il numero di nodi worker. Ad esempio, se nel cluster ci sono cinque nodi dati, si consiglia di ridurre un nodo dati alla volta per garantire la disponibilità del servizio. Se il servizio è disponibile dopo il primo tentativo di ridimensionamento, è possibile continuare a ridurre ulteriormente il numero di nodi di dati.

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 
Milvus supporta solo l'aggiunta dei nodi worker e non supporta l'aggiunta dei componenti coordinatori.

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

Tradotto daDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?