Kubernetes Operator 用のMongoDBドライバーを使用して、 MongoDB v8.0 以降と並行してMongoDB Search とベクトル検索を配置できます。
リソース仕様の例
次の例は、 MongoDB Search とベクトル検索 の配置の specオブジェクト内の設定を示しています。これらの設定の詳細については、必要な設定 と オプション設定 を参照してください。
例
1 spec: 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リソースを作成する名前空間。MongoDBSearchとMongoDBまたはMongoDBCommunityリソースの自動構成を活用するには、MongoDBSearchリソースをMongoDBまたはMongoDBCommunityリソースと同じ名前空間に作成する必要があります。
metadata.name型: string
MongoDBSearchリソースの一意の識別子。リソース名の長さは最大 44 文字です。
オプション設定
このセクションでは、MongoDB Search およびベクトル検索リソースの任意の設定について説明します。任意設定を省略し、CRD で必要な設定のみを定義すると、MongoDB Controls for Kubernetes 演算子はすべての任意設定にデフォルトを使用して MongoDBSearch を構成します。
データソースを構成する設定
spec.source型: オブジェクト
mongotのMongoDBソースレプリカセットを記述する設定。これは、次の場合に必要です。MongoDBは外部ですMongoDBは とは異なる名前を持ちますMongoDBSearch
MongoDBSearchリソースは常にレプリカセットに接続されている必要があります。Kubernetes 演算子を使用してMongoDBまたはMongoDBCommunityCRD でレプリカセットを配置した場合、かつspec.sourceが空の場合、Kubernetes 演算子はmetadata.nameに基づいて、Kubernetes 内のデータベースを検索するために次のようにします。同じ名前空間で、
MongoDBSearchのmetadata.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リソースを検索します。
mongot ユーザーを構成するための 設定
spec.source.username型: string
Username to use to authenticate
mongotwithmongod. The specified user must have thesearchCoordinatorrole. If omitted, the Kubernetes Operator assumes the username issearch-sync-source.
spec.source.passwordSecretRef.name型: string
mongotがmongodで認証するために使用する必要があるパスワードを含むシークレットの名前。省略した場合、デフォルトは<MongoDBSearch.metadata.name>-search-sync-source-passwordになります。
spec.source.passwordSecretRef.key型: string
パスワード値がシークレットで保存されるキー。省略した場合、デフォルトは
passwordになります。
外部MongoDBへの接続設定
次の設定は、外部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型: オブジェクト
mongotlistenサーバーのセキュリティ設定。
spec.security.tls型: オブジェクト
mongotの TLS 設定。省略すると、mongotは受信接続に TLS を使用しません。
spec.security.tls.certificateKeySecretRef.name型: string
秘密キー (
tls.key) と証明書 (tls.crt) を含む同じ名前空間内の TLS シークレットの名前。シークレットは、kubernetes.io/tlsタイプ(cert-manager によって発行されるもの)であるか、手動で作成することができます。これは、mongotで TLS を有効にするために必要となります。
リソースのプロビジョニングの設定
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データベースとは共有されません。データベース自体には、インデックスメタデータ(定義)のみが保存されます。
スカラーデータ型説明labelSelectorstring
storagestring
永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 16Gi です。
For example, if replica set requires 60 gigabytes of storage space, set this value to
60Gi.storageClassstring
永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。MongoDBSearchはsingle永続フィールドのみをサポートします。省略した場合、 Kubernetes演算子はspec.persistence.single.storageを10GBに設定します。
ログ記録の設定
spec.logLevel型: string
mongotログの冗長度。値は次のいずれかになります。TRACEDEBUGINFOWARNERROR
省略した場合、デフォルトは
INFOになります。
その他の設定
spec.version型: string
mongodb-searchDockerイメージのバージョン。 省略した場合、 Kubernetes Operator はMongoDBSearchの最新バージョンを自動的に選択します。Kubernetes Operator バージョンがアップグレードされるときに、自動アップグレードを防止するために明示的に設定することができます。
spec.statefulSetタイプ: apps/v1/StatefulSet
ポッドを配置するために作成された
mongotAtlas App Services の仕様で、 Kubernetes演算子 が適用する設定を上書きします。上書きは常に最後に適用されます。spec.statefulSet.specフィールドとspec.statefulSet.metadataフィールドの両方をサポートします。注意
spec.statefulSetを使用してリソース要件や永続性設定を設定しないでください。代わりに、それぞれspec.resourceRequirementsとspec.persistenceフィールドを使用してください。