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

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

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

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

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

このセクションでは、 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演算子用のMongoDBドライバーはすべてのオプション設定にデフォルトを使用して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 リソースを見つけます。

  • search-sync-source-user-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.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または 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.source.username

: string

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

spec.source.passwordSecretRef

: オブジェクト

MongoDB Search のユーザー パスワードを含むシークレットへの参照。

spec.source.passwordSecretRef.name

: string

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

spec.source.passwordSecretRef.key

: string

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

spec.security

: オブジェクト

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

spec.security.tls

: オブジェクト

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

spec.security.tls.certificateKeySecretRef.name

: string

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

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.version

: string

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

spec.statefulSet

タイプ : apps/v1 /StateulSet

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

注意

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

戻る

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

項目一覧