Kubernetes Operator 用のMongoDBドライバーを使用して、 MongoDB v8.0 以降と並行してMongoDB Search とベクトル検索を配置できます。
リソース仕様の例
次の例は、spec
MongoDB Search とベクトル検索 の配置の オブジェクト内の設定を示しています。これらの設定の詳細については、「 必要な設定 」と「 オプション設定 」を参照してください。
例
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
必要な設定
このセクションでは、 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 で必要な設定のみを定義する場合、 Kubernetes演算子用のMongoDBドライバーはすべてのオプション設定にデフォルトを使用してMongoDBSearch
を構成します。
spec.source
型: オブジェクト
mongot
のMongoDBソースレプリカセットを記述する設定。これは、次の場合に必要です。MongoDB
は外部ですMongoDB
は とは異なる名前を持ちますMongoDBSearch
MongoDBSearch
リソースは常にレプリカセットに接続されている必要があります。MongoDB
またはMongoDBCommunity
CRD とともにKubernetes Operator を使用してレプリカセットを配置し、かつspec.source
が空の場合、 Kubernetes Operator は に基づいて次のコマンドを使用して、metadata.name
Kubernetes内のデータベースを検索します。同じ名前空間で、
MongoDBSearch
のmetadata.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
mongod
でmongot
を認証するために使用するユーザー名。指定されたユーザーにはsearchCoordinator
ロールが必要です。省略した場合、 Kubernetes Operator はユーザー名がsearch-sync-source
であると想定します。
spec.source.passwordSecretRef
型: オブジェクト
MongoDB Search のユーザー パスワードを含むシークレットへの参照。
spec.source.passwordSecretRef.name
型: string
mongot
がmongod
で認証するために使用する必要があるパスワードを含むシークレットの名前。省略した場合、デフォルトは<MongoDBSearch.metadata.name>-search-sync-source-password
になります。
spec.source.passwordSecretRef.key
型: string
パスワード値がシークレットで保存されるキー。省略した場合、デフォルトは
password
になります。
spec.security
型: オブジェクト
mongot
listenサーバーのセキュリティ設定。
spec.security.tls
型: オブジェクト
の TLS 設定。省略した場合、
mongot
mongot
は受信接続に 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 です。
storageClass
string
永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。
StorageClass
reclaimPolicy
を 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。MongoDBSearch
はsingle
永続フィールドのみをサポートします。省略した場合、 Kubernetes演算子はspec.persistence.single.storage
を10GB
に設定します。
spec.version
型: string
mongodb-search
docker イメージのバージョン。省略した場合、 Kubernetes Operator はMongoDBSearch
の最新バージョンを自動的に選択します。 Kubernetes Operator バージョンがアップグレードされるときに、自動アップグレードを防止するために明示的に設定することができます。
spec.statefulSet
タイプ : apps/v1 /StateulSet
mongot
ポッドを配置するために作成されたspec.statefulSet.spec
spec.statefulSet.metadata
Atlas App Services の仕様で、 Kubernetes演算子 が適用する設定を上書きします。上書きは常に最後に適用されます。 フィールドと フィールドの両方をサポートします。注意
spec.statefulSet
を使用してリソース要件や永続性設定を設定しないでください。代わりに、それぞれspec.resourceRequirements
とspec.persistence
フィールドを使用してください。