milvus-logo
LFAI
Home
  • Guia de Administração
    • Escalonamento

Escalar um Cluster Milvus

O Milvus suporta o escalonamento horizontal dos seus componentes. Isto significa que pode aumentar ou diminuir o número de nós de trabalho de cada tipo de acordo com as suas necessidades.

Este tópico descreve como aumentar e diminuir a escala de um cluster Milvus. Partimos do princípio de que já instalou um cluster Milvus antes de efetuar o escalonamento. Além disso, recomendamos que se familiarize com a arquitetura do Milvus antes de começar.

Este tutorial usa como exemplo o escalonamento de três nós de consulta. Para dimensionar outros tipos de nós, substitua queryNode pelo tipo de nó correspondente na linha de comando.

Para obter informações sobre como dimensionar um cluster com o Milvus Operator, consulte Dimensionar um cluster com o Milvus Operator.

O que é escalonamento horizontal?

O escalonamento horizontal inclui o escalonamento para fora e para dentro.

Dimensionamento para fora

O escalonamento para fora refere-se ao aumento do número de nós em um cluster. Ao contrário do aumento de escala, o aumento de escala não requer a alocação de mais recursos para um nó no cluster. Em vez disso, o aumento de escala expande o cluster horizontalmente, adicionando mais nós.

Scaleout Aumento de escala

Scaleup Aumento de escala

De acordo com a arquitetura Milvus, os nós de trabalho sem estado incluem o nó de consulta, o nó de dados, o nó de índice e o proxy. Portanto, é possível escalar esses tipos de nós para atender às suas necessidades de negócios e cenários de aplicativos. Pode escalar o cluster Milvus manualmente ou automaticamente.

Geralmente, será necessário expandir o cluster Milvus criado se ele estiver sendo usado em excesso. Abaixo estão algumas situações típicas em que pode ser necessário dimensionar o cluster do Milvus:

  • A utilização da CPU e da memória é alta por um período de tempo.
  • A taxa de transferência da consulta torna-se mais elevada.
  • É necessária uma maior velocidade de indexação.
  • É necessário processar volumes massivos de grandes conjuntos de dados.
  • É necessário garantir a alta disponibilidade do serviço Milvus.

Aumento de escala

O escalonamento refere-se à diminuição do número de nós num cluster. Geralmente, será necessário escalar o cluster Milvus que criou se este estiver a ser subutilizado. Abaixo estão algumas situações típicas em que é necessário escalonar o cluster Milvus:

  • A utilização da CPU e da memória é baixa por um período de tempo.
  • A taxa de transferência da consulta torna-se mais baixa.
  • Não é necessária uma maior velocidade de indexação.
  • O tamanho do conjunto de dados a ser processado é pequeno.
Não recomendamos reduzir drasticamente o número de nós de trabalho. Por exemplo, se houver cinco nós de dados no cluster, recomendamos a redução de um nó de dados de cada vez para garantir a disponibilidade do serviço. Se o serviço estiver disponível após a primeira tentativa de escalonamento, é possível continuar reduzindo o número do nó de dados.

Pré-requisitos

Execute kubectl get pods para obter uma lista dos componentes e seu status de trabalho no cluster do Milvus que você criou.

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 
O Milvus só suporta a adição dos nós de trabalho e não suporta a adição dos componentes do coordenador.

Dimensionar um cluster do Milvus

É possível dimensionar o cluster do Milvus manual ou automaticamente. Se o escalonamento automático estiver ativado, o cluster do Milvus será reduzido ou expandido automaticamente quando o consumo de recursos de CPU e memória atingir o valor definido.

Atualmente, o Milvus 2.1.0 apenas suporta o escalonamento manual.

Redimensionamento

Execute helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values para escalar manualmente o nó de consulta.

Se for bem-sucedido, três pods em execução no nó de consulta serão adicionados, conforme mostrado no exemplo a seguir.

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

Escalonamento de entrada

Execute helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values para escalonar o nó de consulta.

Se for bem-sucedido, três pods em execução no nó de consulta serão reduzidos a um, conforme mostrado no exemplo a seguir.

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

O que vem a seguir

Traduzido porDeepLogo

Try Zilliz Cloud for Free

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

Get Started
Feedback

Esta página foi útil?