milvus-logo
LFAI
フロントページへ
  • 管理ガイド
    • スケーリング

Milvusクラスタのスケール

Milvusはコンポーネントの水平スケーリングをサポートしています。つまり、必要に応じて各タイプのワーカーノードの数を増やしたり減らしたりすることができます。

このトピックでは、Milvusクラスタのスケールアウトおよびスケールイン方法について説明します。スケールアウトする前にMilvusクラスタをインストール済みであることを前提としています。また、始める前にMilvusアーキテクチャに慣れておくことをお勧めします。

このチュートリアルでは、3つのクエリノードのスケールアウトを例として取り上げます。他の種類のノードをスケールアウトするには、コマンドラインでqueryNode を対応するノードタイプに置き換えてください。

Milvus Operatorを使用してクラスタをスケールアウトする方法については、Milvus Operatorを使用したクラスタのスケールアウトを参照してください。

水平スケーリングとは何ですか?

水平スケーリングには、スケールアウトとスケールインがあります。

スケールアウト

スケールアウトとは、クラスタ内のノード数を増やすことを指します。スケールアップとは異なり、スケールアウトではクラスタ内の1つのノードにより多くのリソースを割り当てる必要はありません。その代わりに、スケールアウトではノードを追加することでクラスタを水平方向に拡張します。

Scaleout スケールアウト

Scaleup スケールアップ

Milvusアーキテクチャによると、ステートレスワーカーノードにはクエリノード、データノード、インデックスノード、プロキシが含まれます。そのため、ビジネスニーズやアプリケーションシナリオに合わせてこれらのタイプのノードをスケールアウトすることができます。Milvusクラスタは手動または自動でスケールアウトすることができます。

一般的に、作成したMilvusクラスタが過剰に使用されている場合はスケールアウトする必要があります。以下はMilvusクラスタのスケールアウトが必要となる典型的な状況です:

  • CPUとメモリの使用率が一定期間高い。
  • クエリのスループットが高くなった。
  • インデックス作成の高速化が必要
  • 大量の大規模データセットを処理する必要がある。
  • Milvusサービスの高い可用性を確保する必要がある。

スケールイン

スケールインとは、クラスタ内のノード数を減らすことを指します。一般的に、作成したMilvusクラスタが十分に利用されていない場合、スケールインする必要があります。以下はMilvusクラスタのスケールインが必要な典型的な状況です:

  • CPUとメモリの使用率が一定期間低い。
  • クエリのスループットが低下している。
  • インデックス作成の高速化は必要ない。
  • 処理するデータセットのサイズが小さい。
ワーカーノード数を極端に減らすことは推奨しない。例えば、クラスタ内に5つのデータノードがある場合、サービスの可用性を確保するために一度に1つのデータノードを減らすことを推奨します。最初にスケールインを試みてサービスが利用可能であれば、データノードの数をさらに減らしていくことができます。

前提条件

kubectl get pods を実行して、作成したMilvusクラスタ内のコンポーネントとその作業ステータスのリストを取得します。

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はワーカーノードの追加のみをサポートしており、コーディネータコンポーネントの追加はサポートしていません。

Milvusクラスタのスケール

Milvusクラスタは手動または自動でスケールできます。自動スケールが有効な場合、CPUおよびメモリリソースの消費量が設定した値に達すると、Milvusクラスタは自動的に縮小または拡張されます。

現在のところ、Milvus 2.1.0では手動によるスケールインおよびスケールアウトのみがサポートされています。

スケールアウト

helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values を実行して手動でクエリノードをスケールアウトします。

成功すると、以下の例のようにクエリノード上で実行中のポッドが3つ追加されます。

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

スケールイン

helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values を実行して、クエリノードをスケールインします。

成功すると、次の例に示すように、クエリ・ノード上で実行中の 3 つのポッドが 1 つに減ります。

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

次のステップ

翻訳DeepLogo

Try Managed Milvus for Free

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

Get Started
フィードバック

このページは役に立ちましたか ?