MongoDB Search は、MongoDB データベース配置 (mongod) と一緒に mongot プロセスを配置することで、Kubernetes 環境でフルテキスト検索機能を有効にします。mongot プロセスは、検索インデックスをマネージし、データベースからデータを取得し、$search および $searchMeta クエリを処理します。これにより、高度な検索機能を提供しながら、個別の検索システムを維持する必要がなくなります。
MongoDB Searchを配置するには、Kubernetes Operatorが取り込んでmongotポッドを配置し、specで指定された永続ストレージをリクエストするMongoDBSearch Custom Resource (CR)を適用します。
配置手順については、MongoDB Search とベクトル検索を配置する。を参照してください。
mongotプロセス
各 mongot プロセスには、データベースや他の検索ノードと共有されていない独自の永続ボリュームがあります。ストレージ は、データベースから継続的に提供されるデータから構築されたインデックスを維持するために使用されます。インデックス定義(メタデータ)はデータベース自体に保存されます。
mongot は、次のアクションを実行します。
インデックスを管理します。
mongotは、データベース内のインデックス定義を更新します。データベースからデータを取得します。
mongotノードは、データベースへの永続的な接続を確立し、データベースからインデックスをリアルタイムで更新します。検索クエリを処理します。
mongodが$searchまたは$searchMetaクエリを受信すると、クエリはmongotノードのいずれかに送信されます。クエリを受信したmongotは、クエリを処理し、データを集計し、その結果をmongodに返し、 はその結果をユーザーに転送します。
mongot コンポーネントは 1 つのMongoDBレプリカセットと厳密に結合されているため、複数のデータベースやレプリカセットで共有することはできません。各レプリカセット配置には、専用の検索ノードがあります。検索ノードアーキテクチャの詳細については、MongoDB Searchドキュメントの「ノードアーキテクチャ」を参照してください。
ネットワーキング
mongot と mongod の間のネットワーク接続は両方向で行われます。
mongotは、インデックスの構築とクエリの実行に使用されるデータを取得するためにレプリカセットへの接続を確立します。mongodはmongotに接続して、インデックス マネジメントやデータのクエリなどの検索関連の操作を転送します。
mongod は、すべての検索クエリのプロキシとして機能します。mongot と直接交流することはありません。
演算子マネージド配置
mongot プロセスと mongod プロセスの両方がKubernetesクラスター内に配置されている場合、Kubernetes Operator は両方のプロセスの構成を自動的に実行します。具体的には、Kubernetes Operator は次のことを行います。
MongoDBSearch が参照する MongoDB CR を
spec.source.mongodbResourceRefを使用して検索するか、命名規則により MongoDBSearch と同じ名前の MongoDB CR を検索します。YAMLファイルに
mongot構成を生成し、それを<MongoDBSearch.metadata.name>-search-configという名前の構成マップに保存します。CR 内の
spec.persistenceとspec.resourceRequirementsに従って構成されたストレージとリソースの要件を持つ<MongoDBSearch.metadata.name>-searchという名前の MongoDB Search ステートフルセットを配置します。mongotホストのホスト名とポート番号を含む必要なsetParameterオプションを追加して、すべてのmongodプロセスの構成を更新します。
外部 MongoDB 配置
MongoDB レプリカセットが Kubernetes の外にある場合は、Kubernetes 演算子を使用して mongot を配置し、手動でいくつかの手順を実行します。Kubernetes 演算子は検索ポッドの構成を取り扱いますが、MongoDB ノードとネットワークを再構成する必要があります。
セキュリティ
MongoDB サーバーが Kubernetes クラスター内にある場合、Kubernetes Operator は MongoDB Search のキーファイル認証を自動的に設定します。MongoDB サーバーが外部にある場合は、レプリカセットのキーファイル認証情報を含む Kubernetes Secret を作成し、MongoDBSearch CR で参照する必要があります。
制限
次のアーキテクチャではMongoDB Searchを配置できません。
IBM Power (ppc64le)
IBM Z (s390x)
Tip
MongoDB Search とベクトル検索を配置する — MongoDB Search とベクトル検索を配置する
MongoDB Search およびベクトル検索設定 — MongoDB Search CR 設定