Milvus Operatorを使用したMilvusの設定
本番環境では、マシンのタイプとワークロードに基づいてMilvusクラスタにリソースを割り当てる必要があります。デプロイ時に設定することも、クラスタの実行中に設定を更新することもできます。
このトピックでは、Milvus Operatorを使用してMilvusクラスタをインストールする際の設定方法を紹介します。
このトピックでは、Milvus Operatorをデプロイしていることを前提としています。詳細については、「Milvus Operatorのデプロイ」を参照してください。
Milvus Operatorを使用したMilvusクラスタの設定には以下が含まれます:
- グローバルリソースの設定
- プライベートリソース設定
グローバルリソースの設定
Milvus Operatorを使用してMilvusクラスタを起動する場合、設定ファイルを指定する必要があります。この例ではデフォルトの設定ファイルを使用しています。
kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
設定ファイルの詳細は次のとおりです:
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
dependencies: {}
components: {}
config: {}
フィールドspec.components
、すべてのMilvusコンポーネントのグローバルおよびプライベートリソース設定の両方が含まれます。以下はグローバルリソースの設定によく使用される4つのフィールドです。
image
:使用するMilvus dockerイメージ。resources
:各コンポーネントに割り当てられた計算リソース。tolerations
and : K8sクラスタ内の各Milvusコンポーネントのスケジューリングルール。詳細はnodeSelector
許容値とnodeSelectorを参照。env
:環境変数。
より多くのフィールドを設定したい場合は、こちらのドキュメントを参照してください。
Milvusクラスタのグローバルリソースを設定するには、milvuscluster_resource.yaml
。
例
以下の例ではMilvusクラスタ用にグローバルリソースを設定しています。
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
components:
nodeSelector: {}
tolerations: {}
env: {}
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
以下のコマンドを実行して新しい設定を適用します:
kubectl apply -f milvuscluster_resource.yaml
my-release
という名前のMilvusクラスタが存在する場合、クラスタリソースは設定ファイルに従って更新されます。そうでない場合は、新しいMilvusクラスタが作成されます。プライベートリソースの設定
もともとMilvus 2.0では、Milvusクラスタにはプロキシ、ルート・コーダ、データ・コーダ、クエリ・コーダ、インデックス・ノード、データ・ノード、クエリ・ノードの7つのコンポーネントが含まれています。しかし、Milvus 2.1.0では新しいコンポーネント、mix coordがリリースされました。mix coordはすべてのコーディネータコンポーネントを含む。したがって、ミックス・コーディネータを起動するということは、ルート・コーディネータ、データ・コーディネータ、クエリ・コーディネータを含む他のコーディネータをインストールして起動する必要がないということです。
各コンポーネントの構成に使用される共通フィールドには、以下のものがあります:
replica
:各コンポーネントのレプリカ数。port
:各コンポーネントのリッスン・ポート番号。- グローバル・リソース構成でよく使用される4つのフィールド:
image
env
,nodeSelector
,tolerations
,resources
(上記参照)。その他の設定可能なフィールドについては、このドキュメントの各コンポーネントをクリックしてください。
特定のコンポーネントのリソースを設定するには、まずspec.componets
のフィールドにコンポーネント名を追加し、そのプライベートリソースを設定してください。
依存関係 | コンポーネント |
---|---|
例
以下の例では、プロキシとデータノードのレプリカと計算リソースをmilvuscluster.yaml
。
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
mode: cluster
components:
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: 200m
memory: 512Mi
rootCoord:
replicas: 1
port: 8080
resources:
limits:
cpu: '6'
memory: '10Gi'
dataCoord: {}
queryCoord: {}
indexCoord: {}
dataNode: {}
indexNode: {}
queryNode: {}
proxy:
replicas: 1
serviceType: ClusterIP
resources:
limits:
cpu: '2'
memory: 4Gi
requests:
cpu: 100m
memory: 128Mi
config: {}
dependencies: {}
以下のコマンドを実行して新しい設定を適用します:
kubectl apply -f milvuscluster.yaml
次のステップ
- Milvus Operatorを使用して次のMilvus依存関係を管理する方法を学びます: