Milvusのスケール依存関係
Milvusは、MinIO、Kafka、Pulsar、etcdといった様々な依存関係に依存しています。これらのコンポーネントを拡張することで、Milvusの様々な要件への適応性を高めることができます。
Milvus Operatorユーザの方は、Milvus Operatorによるオブジェクトストレージの構成、Milvus Operatorによるメタストレージの構成、Milvus Operatorによるメッセージストレージの構成を参照してください。
MinIOの拡張
MinIOポッドあたりのリソースの増加
Milvusで使用されるオブジェクトストレージシステムであるMinIOは、ポッドごとにCPUとメモリのリソースを増やすことができます。
# new-values.yaml
minio:
resources:
limits:
cpu: 2
memory: 8Gi
ファイルを保存した後、次のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
また、各MioIO Persistent Volume Claim (PVC)のspec.resources.requests.storage
の値を手動で変更することで、MioIOクラスタのディスク容量を増やすこともできます。デフォルトのストレージクラスでは、ボリュームの拡張を許可する必要があります。
追加のMinIOサーバープールを追加する(推奨)
Milvusインスタンスに追加のMioIOサーバープールを追加することをお勧めします。
# new-values.yam;
minio:
zones: 2
ファイルを保存した後、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
これにより、MinIOクラスタに追加のサーバプールが追加され、Milvusは各サーバプールの空きディスク容量に基づいてMinIOサーバプールに書き込むことができるようになります。たとえば、3つのプールのグループに合計10TiBの空き容量があり、各プールに次のように配分されている場合、次のようになります:
空き容量 | 書き込み可能 | |
---|---|---|
プールA | 3 TiB | 30% (3/10) |
プールB | 2 TiB | 20% (2/10) |
プールC | 5ティービー | 50% (5/10) |
MinIOは、新しいサーバープール間でオブジェクトのバランスを自動的に調整しません。必要に応じて、mc admin rebalance
、手動でリバランス手順を開始できます。
Kafka
Kafkaブローカーポッドあたりのリソースの増加
各ブローカーポッドのCPUリソースとメモリリソースを調整することで、Kafkaブローカーの容量を拡張します。
# new-values.yaml
kafka:
resources:
limits:
cpu: 2
memory: 12Gi
ファイルを保存した後、次のコマンドで変更を適用する:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
各Kafka Persistent Volume Claim (PVC)のspec.resources.requests.storage
の値を手動で変更することで、Kafkaクラスタのディスク容量を増やすこともできます。デフォルトのストレージクラスがボリュームの拡張を許可していることを確認します。
追加のKafkaブローカープールを追加する(推奨)
Milvusインスタンスに追加のKafkaサーバープールを追加することをお勧めします。
# new-values.yaml
kafka:
replicaCount: 4
ファイルを保存した後、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
これでKafkaクラスタに追加のブローカーが追加されます。
Kafkaはすべてのブローカー間でトピックのバランスを自動的に調整しません。必要に応じて、各Kafkaブローカー・ポッドにログインした後、bin/kafka-reassign-partitions.sh
。
Pulsar
Pulsarは計算とストレージを分離します。Pulsarブローカー(計算)とPulsarブッキー(ストレージ)の容量を個別に増やすことができます。
Pulsarブローカー・ポッドごとにリソースを増やす
# new-values.yaml
pulsar:
broker:
resources:
limits:
cpu: 4
memory: 16Gi
ファイルを保存したら、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
パルサー・ブッキー・ポッドあたりのリソースを増やす
# new-values.yaml
pulsar:
bookkeeper:
resources:
limits:
cpu: 4
memory: 16Gi
ファイルを保存後、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
各Pulsarブッキーのパーシステント・ボリューム・クレーム(PVC)のspec.resources.requests.storage
値を手動で変更することで、Pulsarクラスタのディスク容量を増やすこともできます。デフォルトのストレージ・クラスでは、ボリュームの拡張が可能である必要があります。
Pulsarブッキー・ポッドには、journal
とlegers
の2種類のストレージがあります。journal
タイプのストレージの場合、ストレージ・クラスとしてssd
またはgp3
。以下は、パルサー・ジャーナルにストレージ・クラスを指定する例です。
pulsar:
bookkeeper:
volumes:
journal:
size: 20Gi
storageClassName: gp3
追加のPulsarブローカー・ポッドを追加する
# new-values.yaml
pulsar:
broker:
replicaCount: 3
ファイルを保存したら、以下のコマンドで変更を適用する:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
追加のパルサー・ブッキー・ポッドを追加する(推奨)
# new-values.yaml
pulsar:
bookkeeper:
replicaCount: 3
ファイルを保存した後、以下のコマンドで変更を適用する:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
etcd
etcdポッドあたりのリソースを増やす(推奨)
# new-values.yaml
etcd:
resources:
limits:
cpu: 2
memory: 8Gi
ファイルを保存した後、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus
etcdポッドの追加
etcdポッドの総数は奇数でなければなりません。
# new-values.yaml
etcd:
replicaCount: 5
ファイルを保存した後、以下のコマンドで変更を適用します:
helm upgrade <milvus-release> --reuse-values -f new-values.yaml milvus/milvus