Docs Menu
Docs Home
/ /
/ / /

MongoDB Search とベクトル検索の設定

Kubernetes Operator 用のMongoDBドライバーを使用して、 MongoDB v8.0 以降と並行してMongoDB Search とベクトル検索を配置できます。

次の例は、 MongoDB Search とベクトル検索 の配置の specオブジェクト内の設定を示しています。これらの設定の詳細については、「必要な設定」と「オプション設定」を参照してください。

1spec:
2 source:
3 mongodbResourceRef:
4 name: mdb
5 external:
6 hostAndPorts:
7 - mdb-rs-external-0.example.com:27017
8 - mdb-rs-external-1.example.com:27017
9 - mdb-rs-external-2.example.com:27017
10 keyfileSecretRef:
11 name: mdbc-rs-keyfile
12 key: keyfile
13 tls:
14 ca:
15 name: mdbc-rs-ca
16 username: search-sync-source
17 passwordSecretRef:
18 name: mdbc-rs-search-sync-source-password
19 key: password
20 security:
21 tls:
22 certificateKeySecretRef:
23 name: mdbs-tls-secret
24 resourceRequirements:
25 limits:
26 cpu: "3"
27 memory: 5Gi
28 requests:
29 cpu: "2"
30 memory: 3Gi
31 logLevel: INFO

このセクションでは、 MongoDB Search およびベクトル検索リソースを配置するために必要な設定について説明します。カスタム リソース定義(CRD)で必要な設定のみを定義する場合、 Kubernetes演算子用のMongoDBドライバーはすべてのオプション設定のデフォルトを使用して MongoDBSearch を構成します。

apiVersion

: string

MongoDB Kubernetesリソーススキーマのバージョン。値を mongodb.com/v1 に設定します。

kind

: string

作成する MongoDB Kubernetes リソースの種類。 これをMongoDBSearchに設定します。

metadata.namespace

: string

MongoDBSearchリソースを作成する名前空間。MongoDBSearchMongoDB または MongoDBCommunity リソースの自動構成を活用するには、MongoDBSearchリソースをMongoDB または MongoDBCommunityリソースと同じ名前空間に作成する必要があります。

metadata.name

: string

MongoDBSearchリソースの一意の識別子。リソース名の長さは最大 44 文字です。

このセクションでは、 MongoDB Search およびベクトル検索リソースのオプション設定について説明します。オプション設定を省略し、CRD で必要な設定のみを定義する場合、 Kubernetes Operator 用のMongoDB Controls はすべてのオプション設定にデフォルトを使用して MongoDBSearch を構成します。

spec.source

: オブジェクト

mongot のMongoDBソースレプリカセットを記述する設定。これは、次の場合に必要です。

  • MongoDB は外部です

  • MongoDB は とは異なる名前を持ちます MongoDBSearch

MongoDBSearchリソースは常にレプリカセットに接続されている必要があります。MongoDB または MongoDBCommunity CRD とともにKubernetes Operator を使用してレプリカセットを配置し、かつ spec.source が空の場合、 Kubernetes Operator は metadata.name に基づいて次のコマンドを使用して、 Kubernetes内のデータベースを検索します。

  • 同じ名前空間で、MongoDBSearchmetadata.name に設定した名前と同じ名前の MongoDB または MongoDBCommunity リソースを見つけます。

  • <MongoDBSearch.metadata.name>-search-sync-source-password シークレットから mongot ユーザーのパスワードシークレットを見つけます。

spec.source.mongodbResourceRef.name

: string

このMongoDB Search およびベクトル検索リソースに関連付ける MongoDB または MongoDBCommunityリソースの名前。同じ MongoDB または MongoDBCommunityリソースを参照する複数の MongoDBSearchリソースは存在できません。別の名前を指定する場合は、 MongoDB Search とベクトル検索を有効にする MongoDB または MongoDBCommunity を明示的に点必要があります。

このフィールドは、MongoDB または MongoDBCommunityリソースが同じKubernetesクラスターに配置され、かつ MongoDBSearchリソースと同じ名前空間にある場合にのみ使用します。このフィールドを設定すると、 Kubernetes Operator は自動的に次の操作を実行できるようになります。

  • データベースへの適切な接続文字列を設定します。

  • 検索機能を有効にするために必要なパラメーターを設定し、検索ポッドのアドレスを構成して、 MongoDBデータベース配置を再構成します。

データベースがKubernetes外、または 別の名前空間にある場合は、spec.external を使用してデータベースへの接続を構成します。このフィールドはspec.external と排他関係にあります。

省略した場合、 Kubernetes Operator は、この MongoDBSearchリソースと同じ名前を持つ MongoDB または MongoDBCommunityリソースを検索します。

spec.source.username

: string

mongotmongod を認証するために使用するユーザー名。指定されたユーザーには ロールが必要です。省略した場合、searchCoordinator Kubernetes演算子はユーザー名がsearch-sync-source であると想定します。

spec.source.passwordSecretRef.name

: string

mongotmongod で認証するために使用する必要があるパスワードを含むシークレットの名前。省略した場合、デフォルトは <MongoDBSearch.metadata.name>-search-sync-source-password になります。

spec.source.passwordSecretRef.key

: string

パスワード値がシークレットで保存されるキー。省略した場合、デフォルトは password になります。

次の設定は、外部MongoDBレプリカセットへの接続を構成する場合にのみ必要です。

spec.source.external

: オブジェクト

外部データソースを説明する設定。このオブジェクトでは、 MongoDB Search およびベクトル検索リソースが外部のMongoDBに接続するための設定を記述します。これらの設定は、 Kubernetes演算子を使用して配置されなかった外部MongoDBに接続する場合にのみ指定する必要があります。指定すると、これらの設定は spec.source.mongodbResourceRef.name の 設定を上書きします。Kubernetes Operator を使用して同じクラスターにMongoDBをインストールした場合、これらの設定は任意です。

spec.source.external.hostAndPorts

タイプ: 文字列の配列

外部レプリカセットのホスト名とポートのリスト。これは、 MongoDBレプリカセットへのホストシードリストです。mongot はレプリカセットモードでデータベースに接続し、db.hello() を使用して他のすべてのノードのリストを取得します。

hostAndPorts:
- mdbc-rs-0.my-external-domain.example.com:27017
- mdbc-rs-1.my-external-domain.example.com:27017
- mdbc-rs-2.my-external-domain.example.com:27017
spec.source.external.keyfileSecretRef

: オブジェクト

内部クラスター認証用のキーファイルを含むKubernetesシークレットへの参照。

spec.source.external.keyfileSecretRef.name

: string

mongot に対して mongod を認証するために使用されるキーファイルの名前。指定されたシークレット名には、 MongoDBレプリカセットノードが内部通信に使用するのと同じキーファイルが含まれている必要があります。

spec.source.external.keyfileSecretRef.key

: string

string としてのキーファイルの内容。

Tip

キーファイルは、 Cloud ManagerまたはMongoDB Ops Managerインスタンスのオートメーション構成の auth.keyフィールドにあります。

spec.source.external.tls

: オブジェクト

TLS 設定は、外部MongoDBデータベースに接続するときに mongot が使用する必要があります。

spec.source.external.tls.ca.name

: string

mongod ノードで使用される TLS 証明書を発行した証明機関の信頼できるチェーンを含む Secret の名前。

spec:
source:
external:
tls:
ca:
name: trusted-ca

証明書(または信頼できる CA 証明書のチェーンである場合は の証明書)は、このシークレット内の ca.crt キーの下に指定する必要があります。

name: Secret
apiVersion: v1
metadata:
name: trusted-ca
data:
ca.crt: |
-----BEGIN CERTIFICATE-----
MIIDBTCCAe2gAwIBAgIIH3EOUAGAsx0wDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE
[...]
U/4rN8Ias/FONYFRtGfs9uXHmo2MP04BF+9ED2dlbNDUbat+6XCozLJj98nI4VEi
qaV3JrVFHTgN
-----END CERTIFICATE-----
spec.security

: オブジェクト

mongot listenサーバーのセキュリティ設定。

spec.security.tls

: オブジェクト

mongot の TLS 設定。省略した場合、mongot は受信接続に TLS を使用しません。

spec.security.tls.certificateKeySecretRef.name

: string

秘密キー(tls.key)と証明書(tls.crt)を含む同じ名前空間内の TLS シークレットの名前。シークレットは、タイプ kubernetes.io/tls(証明書マネージャーによって発行される)または手動で作成することができます。これは、mongotTLS を有効にするために必要です。

spec.resourceRequirements

タイプ: Core/v1/ResourceRequirements

mongodb-searchコンテナがリクエスト、制限する CPU とメモリ。spec.statefulSet で上書きするのではなく、このフィールドを使用してリソース割り当てをカスタマイズすることをおすすめします。

省略した場合、 Kubernetes演算子は次のデフォルト値を使用します。

requests:
cpu: 2
memory: 2G
spec.resourceRequirements.limits

: オブジェクト

mongodb-searchコンテナが消費できるリソース、CPU、メモリの上限。デフォルトでは 、制限は設定されていません。省略した場合、ポッドは制限されないため、 はノード上のすべてのリソースを使用する可能性があります。ワークロードに基づいて制限を設定することをお勧めします。

spec.resourceRequirements.requests

: オブジェクト

mongodb-searchコンテナに要求される CPU とメモリの量。省略した場合、 Kubernetes演算子は次のデフォルト値を使用します。

requests:
cpu: 2
memory: 2G
spec.persistence.single

: オブジェクト

MongoDB Search およびベクトル検索永続ボリュームのストレージ構成。MongoDB Search インデックスとベクトル検索インデックスが保存されます。各検索インスタンス(ポッド)には、インデックスを維持するための独自のストレージがあります。これはMongoDBデータベースとは共有されません。データベース自体には、インデックスメタデータ(定義)のみが保存されます。

スカラー
データ型
説明

labelSelector

string

storage

string

マウントする永続ボリュームの最小サイズ。この値は、 JEDEC 表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

例、レプリカセットに60 ギガバイトのストレージ容量が必要な場合は、この値を 60Gi に設定します。

storageClass

string

永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。

StorageClass reclaimPolicy保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。

MongoDBSearchsingle 永続フィールドのみをサポートします。省略した場合、 Kubernetes演算子は spec.persistence.single.storage10GB に設定します。

spec.logLevel

: string

mongot ログの冗長度。値は次のいずれかになります。

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

省略した場合、デフォルトは INFO になります。

spec.version

: string

mongodb-search Dockerイメージのバージョン。 省略した場合、 Kubernetes Operator は MongoDBSearch の最新バージョンを自動的に選択します。Kubernetes Operator バージョンがアップグレードされるときに、自動アップグレードを防止するために明示的に設定することができます。

spec.statefulSet

タイプ: apps/v1/StatefulSet

ポッドを配置するために作成されたmongot Atlas App Services の仕様で、 Kubernetes演算子 が適用する設定を上書きします。上書きは常に最後に適用されます。spec.statefulSet.spec フィールドと spec.statefulSet.metadata フィールドの両方をサポートします。

注意

spec.statefulSet を使用してリソース要件や永続性設定を設定しないでください。代わりに、それぞれ spec.resourceRequirementsspec.persistence フィールドを使用してください。

戻る

CRD ログ ローテーション設定

項目一覧