Docs Menu
Docs Home
/
Kubernetes Operator 用のMongoDBドライバー

MongoDB Search とベクトル検索の配置

KubernetesクラスターにMongoDB Search とベクトル検索を配置すると、アプリケーション内で強力な検索エクスペリエンスを直接構築できます。MongoDB Search とベクトル検索を使用すると、オンプレミスのMongoDBデータベースと自動的に同期する従来のテキスト検索とAIを使用したベクトル検索機能の両方を構築できます。これにより、高度な検索機能を提供しながら個別のシステムを同期して維持する必要がなくなります。詳しくは、以下を参照してください。

オンプレミス配置で全文検索やセマンティック検索などの検索機能を有効にするには、 MongoDB Search およびベクトル検索プロセス(mongot)を配置し、それをMongoDBデータベース配置(mongod)に接続する必要があります。 。mongot の配置は任意であり、それが提供する検索機能を活用する予定の場合にのみ必要です。

MongoDB Database プロセス(mongod)は、mongot のすべての検索クエリのプロキシとして機能します。mongod はクエリを mongot に転送し、クエリを処理します。mongot はクエリ結果を mongod に返し、ノードはその結果を に転送します。mongot と直接やり取りすることはありません。

mongot プロセスには、データベースや他の検索ノードと共有されていない独自の永続ボリュームがあります。ストレージ は、データベースから継続的に提供されるデータから構築されたインデックスを維持するために使用されます。インデックス定義(メタデータ)はデータベース自体に保存されます。

mongot は、次のアクションを実行します。

  • インデックスを管理します。

    mongot は、データベース内のインデックス定義を更新します。

  • データベースからデータを取得します。

    mongot ノードは、データベースへの永続的な接続を確立し、データベースからインデックスをリアルタイムで更新します。

  • 検索クエリを処理します。

    When mongod$search$searchMeta、または $vectorSearch クエリを受信すると、そのクエリは mongot ノードのいずれかに送信されます。クエリを受け取った mongot はクエリを処理し、データを集計し、その結果を mongod に返し、ユーザーに転送します。

mongot コンポーネントは 1 つのMongoDBレプリカセットと厳密に結合されているため、複数のデータベースやレプリカセットで共有することはできません。つまり、レプリカセット配置には専用の検索ノードがあります。

mongotmongod の間のネットワーク接続は両方向で行われます。

  • mongot は、インデックスの構築とクエリの実行に使用されるデータを取得するためにレプリカセットへの接続を確立します。

  • mongodmongot に接続して、インデックス管理やデータのクエリなどの検索関連の操作を転送します。

Kubernetes演算子 の有無にかかわらず、検索配置アーキテクチャに大きな違いはありません。Kubernetes Operator は、特にデータベースもKubernetes Operator によって管理されている場合に、完全に機能する検索ノードを配置するために必要な手順を簡素化します。

配置するには、MongoDBSearch カスタム リソース(CR)を適用します。これをKubernetes Operator が取得して mongot ポッドの配置を開始し、spec で指定された永続ストレージをリクエストします。Kubernetes Operator を使用して配置されたMongoDB Search とベクトル検索 は、同じKubernetesクラスター内または完全に独立した外部MongoDBデータベース内にKubernetes Operator によって配置されたMongoDBレプリカセットを対象とできます。mongot が使用するように配置して構成する方法については、以下をご覧ください。

  • KubernetesのMongoDBレプリカセットについては、 MongoDB Enterprise Edition を使用した検索のインストールと使用 を参照してください。

  • 外部MongoDBレプリカセットは、外部MongoDB Enterprise Edition を使用してMongoDB Search およびベクトル検索をインストールして使用する を参照してください。

MongoDB Enterprise配置でMongoDB Search とベクトル検索を活用するには、次のものが必要です。

  • 完全に機能するMongoDB 8.0.10+次のいずれかの方法で配置されたレプリカセット。

    • Kubernetes演算子を使用するKubernetesクラスター内

    • Kubernetesクラスターの外部

  • Cloud ManagerまたはMongoDB Ops Manager のインスタンス

次の表は、 Kubernetes Operator が自動的に実行する構成タスクと、 KubernetesにMongoDB Search とベクトル検索を正常に配置し、 KubernetesのMongoDBレプリカセットまたは外部MongoDBレプリカセットに接続するために実行する必要があるアクションを示しています。

タスク
(Inside Kubernetes)
Performed by
(External MongoDB)
Performed by

Kubernetes内でのMongoDB Ops Managerの配置

Kubernetes 演算子

Kubernetes 演算子

Kubernetes の外部でのCloud ManagerまたはMongoDB Ops Managerの配置

あなたの

あなたの

MongoDBレプリカセットの配置

Kubernetes 演算子

あなたの

MongoDBSearch カスタムリソースを作成

あなたの

あなたの

MongoDBレプリカセットへの接続文字列の指定

Kubernetes 演算子

あなたの

mongot 構成 YAML を作成

Kubernetes 演算子

Kubernetes 演算子

mongod プロセスで必要なレプリカセットパラメータを設定する

Kubernetes 演算子

あなたの

MongoDBバージョン 8.2 未満の多角形 searchCoordinator ロール

Kubernetes 演算子

あなたの

searchCoordinator ロールを持つ mongot のユーザーを作成

Kubernetes Operator と MongoDBUserリソースを適用することで

あなたの

クエリ検索に必要な権限を持つユーザーでMongoDBレプリカセットを構成する

あなたの

あなたの

MongoDB Search およびベクトル検索インデックスの作成

あなたの

あなたの

mongodノードから接続するために検索ポッドを外部で公開します

不要

あなたの

mongot ノードからの接続用にmongodポッドを外部で公開します

不要

あなたの

次の画像は、mongot プロセスのセキュリティ構成を示しています。MongoDBサーバーがKubernetesクラスター内にある場合、 Kubernetes Operator はMongoDB Search とベクトル検索の キーファイル認証 を自動的に設定します。MongoDBサーバーが外部の場合は、レプリカセットのキーファイル認証情報を含むKubernetes Secret を作成し、MongoDBSearch CR で参照必要があります。

検索用のキーファイル認証と TLS 構成を示す図。
クリックして拡大します

mongod に接続する際、mongot は自分自身をデータベースユーザーとして認証します。MongoDB Search とベクトル検索を配置する場合は、データベースユーザーを作成する必要があります。Kubernetes Secret に保存されているユーザー認証情報を mongot に渡すには、MongoDBSearch CRspec.source.username フィールドと spec.source.passwordSecretRef フィールドに入力します。

mongodからの接続を受け入れる場合、mongot はMongoDBレプリカセットの内部認証と同様に、キーファイルを使用した内部認証を使用してリモートリクエストを認証します。同じKubernetesクラスターでMongoDBリソースをインデックスように構成すると、 Kubernetes Operator は MongoDBSearch のキーファイル認証を自動的に設定します。MongoDBレプリカセットがKubernetes の外部に配置されている場合は、レプリカセットのキーファイル認証情報を含むKubernetes Secret を作成し、MongoDBSearch.spec.source.external.keyfileSecretRefフィールドで参照必要があります。

MongoDBSearch は TLS を使用して、転送中のデータと認証情報を保護できます。インデックス管理コマンドと検索クエリでは、(空のオブジェクトであっても、{}spec.security.tls フィールドを指定し、 フィールドのKubernetes Secretspec.security.tls.certificateKeySecretRef で TLS 証明書を提供します。この TLS 証明書は、 MongoDBレプリカセットが使用する CA 証明書を発行したのと同じ CA によって発行され、署名されている必要があります。

MongoDBSearchMongoDB の両方がKubernetes Operator によって配置される場合、基礎の mongotmongod の構成は大部分がKubernetes Operator 自体によって処理されます。MongoDBレプリカセットがKubernetesの外部に配置される場合、.spec.source.external.tlsフィールドには、mongod が構成されているのと同じ CA 証明書を含むKubernetes Secret が入力され、mongod 構成自体で searchTLSMode パラメータが に設定されている必要があります。 requireTLS

項目一覧