Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
/ / /

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

Kubernetes 演算子 用のMongoDB Controllers を使用して、 MongoDB 8.2 以降と並行してMongoDB Search とベクトル検索を配置できます。

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

注意

この例は動作する構成ではありません。参照のサンプル値が入力されているすべての利用可能なフィールドが含まれています。一部のフィールドは相互に排他的です(例: 、source.mongodbResourceRefsource.external)。有効な組み合わせについては、以下のフィールドの説明を参照してください。

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 shardedCluster:
11 router:
12 hosts:
13 - mongos1.example.com:27017
14 - mongos2.example.com:27017
15 shards:
16 - shardName: shard-0
17 hosts:
18 - shard0-node1.example.com:27018
19 - shard0-node2.example.com:27018
20 - shardName: shard-1
21 hosts:
22 - shard1-node1.example.com:27018
23 - shard1-node2.example.com:27018
24 tls:
25 ca:
26 name: mdbc-rs-ca
27 username: search-sync-source
28 passwordSecretRef:
29 name: mdbc-rs-search-sync-source-password
30 key: password
31 # x509 authentication (mutually exclusive with
32 # username/passwordSecretRef)
33 x509:
34 clientCertificateSecretRef:
35 name: mongot-x509-client-cert
36 replicas: 2
37 loadBalancer:
38 # Option 1: Operator-managed Envoy load balancer
39 managed:
40 externalHostname: "search.apps.example.com"
41 resourceRequirements:
42 requests:
43 cpu: "100m"
44 memory: 128Mi
45 limits:
46 cpu: "500m"
47 memory: 512Mi
48 deployment:
49 spec:
50 template:
51 spec:
52 nodeSelector:
53 kubernetes.io/os: linux
54 # Option 2: User-provided (BYO) load balancer
55 # (mutually exclusive with managed)
56 unmanaged:
57 endpoint: "search-lb.corp.example.com:443"
58 security:
59 tls:
60 certificateKeySecretRef:
61 name: mdbs-tls-secret
62 certsSecretPrefix: my-prefix
63 resourceRequirements:
64 limits:
65 cpu: "3"
66 memory: 5Gi
67 requests:
68 cpu: "2"
69 memory: 3Gi
70 persistence:
71 single:
72 storage: 16Gi
73 storageClass: standard
74 version: "0.64.0"
75 statefulSet:
76 spec:
77 template:
78 spec:
79 nodeSelector:
80 kubernetes.io/os: linux
81 jvmFlags:
82 - -Xms2g
83 - -Xmx2g
84 autoEmbedding:
85 embeddingModelAPIKeySecret:
86 name: embedding-model-api-query-key
87 providerEndpoint: https://ai.mongodb.com/v1/embeddings
88 logLevel: INFO
89 prometheus: {}

このセクションでは、MongoDB 検索するおよびベクトル検索リソースを配置するために必要な設定について説明します。カスタム リソース定義(CRD)で必要な設定のみを定義する場合、 MongoDB Controllers for Kubernetes Operator はすべての任意設定のデフォルトを使用して 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リソースは常にMongoDB配置に接続されている必要があります。MongoDB または MongoDBCommunity CRD とともにKubernetes Operator を使用して配置した場合、かつ spec.source が空の場合、 Kubernetes Operator は 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リソースの名前。Kubernetes演算子は、レプリカセットとシャーディングされたクラスターの両方をサポートします。同じ MongoDB または MongoDBCommunityリソースを参照する複数の MongoDBSearchリソースは存在できません。別の名前を指定する場合は、 MongoDB Search とベクトル検索を有効にする MongoDB または MongoDBCommunity を明示的に点必要があります。

シャーディングされたクラスターのMongoDBリソースを参照と、 Kubernetes Operator はシャードトポロジー(シャード名、レプリカセット、mongos ルーター)を自動検出し、シャードごとの mongotステートメントを自動的に作成します。追加の外部設定を実行する必要はありません。

このフィールドは、MongoDB または MongoDBCommunityリソースが同じKubernetesクラスターに配置され、 MongoDBSearchリソースと同じ名前空間にある場合にのみ使用します。このフィールドを に設定すると、 Kubernetes 演算子 は自動的に次のことを行います。

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

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

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

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

spec.source.username

: string

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

spec.source.passwordSecretRef.name

: string

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

spec.source.passwordSecretRef.key

: string

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

spec.source.x509

: オブジェクト

mongot 同期ソース接続の x509クライアント証明書認証を構成します。このフィールドを に設定すると、mongot はユーザー名とパスワードの代わりに x509 を使用してMongoDBに認証します。

このフィールドは、spec.source.passwordSecretRefspec.source.username と相互に排他的です。x509 と パスワード認証 の両方を指定すると、 Kubernetes演算子は構成を拒否します。

spec.source.x509.clientCertificateSecretRef

: オブジェクト

MongoDB同期ソースに認証するための x509クライアント証明書とキーを含むシークレット。シークレット には次のキーが含まれている必要があります。

  • tls.crt — クライアント証明書(必須)

  • tls.key — 秘密キー(必須)

  • tls.keyFilePassword —秘密キーのパスワード(任意)

spec.source.x509 を設定する場合は、このフィールドを指定する必要があります。

spec:
source:
x509:
clientCertificateSecretRef:
name: mongot-x509-client-cert

次の設定は、 MongoDB配置への接続を構成する場合にのみ必要です。

spec.source.external

: オブジェクト

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

spec.source.external.hostAndPorts

タイプ: 文字列の配列

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

このフィールドは spec.source.external.shardedCluster と排他関係にあります。レプリカセットソースには hostAndPorts を使用し、シャーディングされたクラスターソースには shardedCluster を使用します。

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

: オブジェクト

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

spec.source.external.tls.ca.name

: string

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

spec:
source:
external:
tls:
ca:
name: trusted-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-----

次の設定は、外部MongoDBシャーディングされたクラスターへの接続を構成する場合にのみ必要です。既存の spec.source.external 設定を拡張します。

注意

spec.source.external.hostAndPorts (レプリカセットの場合)と spec.source.external.shardedCluster は相互に排他的です。それらの 1 つだけを指定します。

spec.source.external.shardedCluster

: オブジェクト

外部のシャーディングされたMongoDBクラスターを mongot のデータソースとして宣言します。mongos ルーターとシャードごとのレプリカセットの構成が含まれます。

MongoDB クラスターがKubernetesの外部に配置され、 Kubernetes 演算子 によってマネージドではない場合にのみ、これを使用してください。MongoDB CRD を使用して配置されたオペレーターマネージドのシャーディングされたクラスターの場合は、代わりに spec.source.mongodbResourceRef を使用します。Kubernetes 演算子は シャードトポロジーを自動検出します。

spec:
source:
external:
shardedCluster:
router:
hosts:
- "mongos1.external:27017"
- "mongos2.external:27017"
shards:
- shardName: "shard-0"
hosts:
- "shard0-node1.external:27018"
- "shard0-node2.external:27018"
- shardName: "shard-1"
hosts:
- "shard1-node1.external:27018"
- "shard1-node2.external:27018"
spec.source.external.shardedCluster.router

: オブジェクト

外部シャーディングされたクラスターの mongos(ルーター)インスタンスの構成。

spec.source.external.shardedCluster.router.hosts

タイプ: 文字列の配列

host:port形式の mongos ルーター インスタンスのエンドポイントとなる接続されたデバイスのリスト。すべての mongot インスタンスがこれらのルーターに接続します。少なくとも 1 つのエントリを指定します。

router:
hosts:
- "mongos1.external:27017"
- "mongos2.external:27017"
spec.source.external.shardedCluster.shards

タイプ: オブジェクトの配列

外部MongoDBクラスター内のすべてのシャードのリスト。各エントリは、1 つのシャードのレプリカセットについて説明します。Kubernetes 演算子は、シャードごとに 1 つの mongot StatefulSet を作成します。各StatefulSetには、spec.replicas で指定されたポッドの数が含まれます。少なくとも 1 つのシャード エントリを指定します。

spec.source.external.shardedCluster.shards[*].shardName

: string

シャードの論理名。Kubernetes 演算子 は、 Kubernetesリソースの名前付け(StateulSets、 Services、 Secrets)にこの名前を使用します。値はMongoDBシャード名とは異なる場合があります。

命名制約:

  • すべてのシャードで一意である必要があります。

  • Must conform to Kubernetes DNS サブドメイン名ルール(RFC 1123)に準拠する必要があります。このルールでは、小文字の英数字、ハイフン(-)、ピリオド(.)が使用でき、名前が英数字で始まり、末尾に次が含まれる必要があります:文字列。アンダースコア(_)は許可されていません。

  • metadata.nameshardName の合計の長さは、50 文字未満である必要があります。

shards:
- shardName: "shard-0"
hosts:
- "shard0-node1.external:27018"
spec.source.external.shardedCluster.shards[*].hosts

タイプ: 文字列の配列

このシャードの mongodレプリカセットのエンドポイントのリスト( host:port形式 )。mongot インスタンスは、これらのホストからデータを複製します。少なくとも 1 つのエントリを指定します。

各レプリカセット(シャード)には独自の mongot インスタンスのグループがあり、そのレプリカセットからのみデータをソースとします。異なるシャードで同じ mongot インスタンスが共有されることはありません。

shards:
- shardName: "shard-0"
hosts:
- "shard0-node1.external:27018"
- "shard0-node2.external:27018"
- "shard0-node3.external:27018"
spec.security

: オブジェクト

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

spec.security.tls

: オブジェクト

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

spec.security.tls.certificateKeySecretRef.name

: string

バージョン 1.8.0 から非推奨 :代わりに spec.security.tls.certsSecretPrefix を使用してください。

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

Kubernetes 演算子 は、下位互換性のためにレプリカセットの配置でこのフィールドを引き続きサポートします。ただし、

  • シャーディングされたクラスターの配置の場合、 Kubernetes 演算子は検証中にこのフィールドを拒否します。代わりに spec.security.tls.certsSecretPrefix を使用してください。これは、単一のシークレット参照ではシャードごとの証明書をカバーできないためです。

  • certificateKeySecretRefcertsSecretPrefix の両方を指定した場合、レプリカセットの配置では certificateKeySecretRef が優先されます。

新しい配置では、レプリカセットでも spec.security.tls.certsSecretPrefix を使用します。

spec.security.tls.certsSecretPrefix

: string

Kubernetes 演算子が命名規則によって TLS シークレット名を生成するために使用するプレフィックス。このフィールドを に設定すると、各コンポーネントに対して明示的なシークレット参照が必要になるのではなく、 Kubernetes 演算子 はこれらのパターンに従ってシークレットを検索します。

コンポーネント
シークレット名パターン

レプリカセットの mongotサーバー証明書

{certsSecretPrefix}-{name}-search-cert

シャーディングされた mongot 証明書(シャードあたり)

{certsSecretPrefix}-{name}-search-0-{shardName}-cert

マネージド ロードバランサーサーバー証明書

{certsSecretPrefix}-{name}-search-lb-0-cert

マネージド ロードバランサークライアント証明書

{certsSecretPrefix}-{name}-search-lb-0-client-cert

以下の条件に一致するもの。

  • {name} は、MongoDBSearchリソースの metadata.name です

  • {shardName} は、次の値です: spec.source.external.shardedCluster.shards[*].shardName

省略した場合、このフィールドはデフォルトで空の文字列になり、 Kubernetes演算子は代わりに spec.security.tls.certificateKeySecretRef を使用します。

注意

シャーディングされたクラスター配置の場合は、certificateKeySecretRef ではなく certsSecretPrefix を使用する必要があります。Kubernetes演算子は、単一のシークレット参照ではシャードごとの証明書をカバーできないため、シャーディングされたトポロジーの certificateKeySecretRef を拒否します。

spec:
security:
tls:
certsSecretPrefix: my-prefix
spec.replicas

タイプ: 整数

配置する mongot ポッドの数。レプリカセットソースの場合、これは mongot ポッドの合計数です。シャーディングされたクラスターソースの場合、これはシャードあたりの mongot ポッドの数です。

spec.replicas1 より大きい場合は、mongod と複数の mongot インスタンス間でトラフィックをルーティングするように spec.loadBalancer も構成する必要があります。

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

spec:
replicas: 2
spec.loadBalancer

: オブジェクト

mongod(または mongos)と mongot の間の L7 負荷分散の構成。このフィールドは、spec.replicas1 より大きい場合に必要です。spec.replicas1 の場合、このフィールドは任意です。後でスケールアップするために、単一の mongotインスタンスに対してもロードバランサーを構成できます。

正確に managed または unmanaged の 1 つを設定する必要があります。

ロードバランサーは、mongod クライアントが表示する TLS 証明書と、それらの証明書に含める必要があるホスト名に影響します。

  • ロードバランサーがない場合mongodmongot に直接接続します。mongod に提示される TLS 証明書は mongot の証明書です。MongoDBクラスターがKubernetesの外部にある場合、mongot サービスは外部ドメインに公開されます。その外部ドメインは、mongot TLS 証明書の SAN(サブジェクト代替名)フィールドに含める必要があります。

  • マネージド ロードバランサーspec.loadBalancer.managed)では、Envy プロキシは mongot に直接接続する唯一のコンポーネントです。Envy は、内部ヘッドレス サービス FQDN を使用して mongot ポッドに到達します。

    • レプリカセット: <pod>.<name>-search-svc.<ns>.svc.cluster.local

    • シャーディングされたクラスター: <pod>.<name>-search-0-<shard>-svc.<ns>.svc.cluster.local

    SANフィールドにこれらのクラスター ローカル ドメインを使用して mongot TLS 証明書を発行します。ワイルドカード証明書を使用すると、mongot ポッドの数が変更されたときに証明書が再発行されないようにできます。外部の mongod プロセスは Envy プロキシの TLS 証明書を参照するため、mongot 証明書ではなく Envy 証明書の SAN に外部ドメインを含めます。

Tip

最初に単一の mongot ポッドを配置する場合でも、マネージド ロードバランサーを有効にします。ロードバランサーが設定されている状態で、後で spec.replicas を増やすアップしても、TLS 証明書内のドメインは安定したままになります。これは、ロードバランサーがmongodmongot の間にすでに存在するためです。

spec.loadBalancer.managed

: オブジェクト

演算子がEnvoyロードバランサーをマネージド構成します。Kubernetes 演算子は、正しいルーティング、mTLS、 HTTP/2+gRPC ストリームの固定を使用して Envy プロキシ を配置しますおよび管理します。デフォルトを使用するには、このフィールドを空のオブジェクト({})に設定します。

このフィールドは spec.loadBalancer.unmanaged と排他関係にあります。

spec:
loadBalancer:
managed: {}
spec.loadBalancer.managed.externalHostname

: string

Envy プロキシが受信リクエストの SNI 一致を要求するホスト名。Kubernetes 演算子 はこの値を使用して、受信 mongod 接続からの TLS SNIフィールドに一致するルーティング ルールを構成します。Envy TLSサーバー証明書の SAN(サブジェクト代替名)フィールドにこのホスト名を含める必要があります。

クラスターの場合、 値にはKubernetes 演算子がシャードごとに展開する {shardName} プレースホルダーが含まれている必要があります。各シャードには一意のホスト名が付けられます。Envy TLSサーバー証明書には SAN 内のすべての展開されたシャード ホスト名を含める必要があります。ワイルドカード証明書 を使用すると、すべてのシャードを単一の証明書でカバーし、シャードが追加されたときに再発行を回避できます。

このフィールドは、 MongoDBが外部マネージドされている場合( Kubernetes 演算子 によって配置されていない場合)に必要です。MongoDB が同じクラスターで演算子によって管理されている場合は、 Kubernetes Operator がルーティングを自動構成するため、このフィールドを省略します。

# Replica set with external MongoDB
spec:
loadBalancer:
managed:
externalHostname: "search.apps.example.com"
# Sharded cluster with external MongoDB
spec:
loadBalancer:
managed:
externalHostname: "{shardName}.search.example.com"
spec.loadBalancer.managed.resourceRequirements

タイプ: Core/v1/ResourceRequirements

Envyコンテナがリクエスト、制限することができる CPU とメモリ。この設定を指定すると、 Kubernetes Operator はデフォルトを完全に置き換えます。

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

requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi

spec:
loadBalancer:
managed:
resourceRequirements:
requests:
cpu: "200m"
memory: "256Mi"
limits:
cpu: "1"
memory: "1Gi"
spec.loadBalancer.managed.deployment

: オブジェクト

Kubernetes演算子が 演算子が作成した 環境への配置 にマージする上書き。MongoDBリソースで spec.statefulSet と同じ規則に従います。省略した場合、 Kubernetes演算子は環境配置にデフォルトを使用します。

このオブジェクトには 2 つのフィールドが含まれています。

  • metadata には、 Kubernetes演算子が 環境配置メタデータにマージする labels フィールドと annotations フィールドが含まれています。

  • specapps/v1/DeploymentSpecオブジェクト。Kubernetes 演算子はこれらのオーバーライドを Envy 配置 仕様にマージします。

spec:
loadBalancer:
managed:
deployment:
spec:
template:
spec:
nodeSelector:
kubernetes.io/os: linux
spec.loadBalancer.unmanaged

: オブジェクト

ユーザー提供の(独自の) L7 ロードバランサーを構成します。ロードバランサーの外部での配置と構成は、ユーザーの責任となります。

このフィールドは spec.loadBalancer.managed と排他関係にあります。

spec.loadBalancer.unmanaged.endpoint

: string

host:port形式の BIO ロードバランサーの エンドポイントとなる接続されたデバイス。Kubernetes 演算子は、この値を mongotHostsearchIndexManagementHostAndPort として mongod 構成に書込みます。

このフィールドは、 Kubernetes Operator がMongoDBの配置をマネージドしている場合にのみ必要です(spec.source.mongodbResourceRef を使用)。Kubernetes Operatorはmongod パラメータを構成するためにエンドポイントが必要であるためです。ロードバランサーとMongoDB の両方が外部( Kubernetes 演算子 によって管理されていない)の場合、mongod パラメータを自分で構成するため、このフィールドは必須ではありません。

シャーディングされたクラスターの場合、 値にはKubernetes Operator がシャードごとに展開する {shardName} プレースホルダーが含まれている必要があります。

# Replica set example
spec:
loadBalancer:
unmanaged:
endpoint: "search-lb.corp.example.com:443"
# Sharded cluster example
spec:
loadBalancer:
unmanaged:
endpoint: "{shardName}-lb.corp.example.com:443"
spec.resourceRequirements

タイプ: Core/v1/ResourceRequirements

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

spec.jvmFlags でJVMヒープ サイズをオーバーライドしない場合、 Kubernetes Operator はデフォルトのヒープサイズ(-Xmx)を mongot ポッドで使用可能なメモリの 50% に設定します。ポッド リソースとJVMヒープ サイズの両方を制御するには、それに応じて spec.resourceRequirements を調整します。

省略した場合、 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保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。

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

spec.logLevel

: string

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

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

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

spec.prometheus

: オブジェクト

これは、v1.6 以降でのみ使用できます。

Prometheus メトリクス エンドポイントとなる接続されたデバイスを有効にする構成。省略した場合、mongot のメトリクス エンドポイントとなる接続されたデバイスは無効になります。デフォルトポート(9946)で Prometheus メトリクス エンドポイントとなる接続されたデバイスを有効にするには、spec.prometheusフィールドに空の {}オブジェクトを指定します。ポートを変更するには、spec.prometheus.portフィールドに設定します。

spec.prometheus.port

: string

Prometheus メトリクス エンドポイントとなる接続されたデバイスを有効にするポート。デフォルトでは、Prometheus メトリクス エンドポイントとなる接続されたデバイスはポート 9946 で有効になっています。

重要

自動埋め込みは、 MongoDB Community Edition 配置でのみプレビュー機能として利用できます。機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。「プレビュー機能」を参照してください。

spec.autoEmbedding

: オブジェクト

コレクション内のテキスト データ用の自動埋め込みの構成。

spec.autoEmbedding.embeddingModelAPIKeySecret

: オブジェクト

埋め込みモデルプロバイダーAPIキーの構成。自動埋め込みを有効にするには、2 つのキーを作成する必要があります。1 つはコレクション内のデータのインデックス時に埋め込みを生成するため、もう 1 つはクエリテキストのクエリ時に埋め込みを生成するためです。キーをまだ持っていない場合は、Atlas の 2 つのプロジェクトからキーを作成することをお勧めします。Atlas UIから Atlas プロジェクトのキーを作成する方法について詳しくは、 APIキーの管理 を参照してください。

spec.autoEmbedding.embeddingModelAPIKeySecret.name

: string

mongot がインデックス時とクエリ時に埋め込みを生成するために使用する必要がある埋め込みモデルAPIキーを含むシークレットの名前。

spec.autoEmbedding.providerEndpoint

: string

埋め込みを生成するための埋め込みモデルエンドポイントURL。値は、Atlas UIからキーを作成するか(推奨)、埋め込みサービスから直接キーを作成するか(Voyage AI)によって異なります。次から作成されたキーの場合。

  • Atlas UI、値は https://ai.mongodb.com/v1/embeddings(デフォルト)

  • Voyage AI、値は https://api.voyageai.com/v1/embeddings

spec.jvmFlags

タイプ: 文字列の配列

mongot プロセスに渡されるJVMフラグ。Kubernetes演算子は、--jvm-flags "<all flags space-separated>" を使用する mongotスタートアップコマンドに変更せずに フラグを含めます。

このフィールドに -Xms または -Xmx を指定しない場合、 Kubernetes Operator は両方を spec.resourceRequirements.requests.memory の半分に設定して、ヒープサイズを自動計算します。リソース要件を指定しない場合、 Kubernetes 演算子はデフォルトの 4Gi メモリリクエストを使用し、約 -Xmx2048m -Xms2048m を生成します。

独自の -Xms または -Xmx 値を指定すると、 Kubernetes 演算子 はそれらを使用し、値を上書きしません。Kubernetes Operator は、演算子によって計算されたフラグの後に、指定したフラグを常に追加します。

mongot のハードウェア サイズ」を参照してください。

spec:
jvmFlags:
- -Xms2g
- -Xmx2g
spec.version

: string

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

spec.statefulSet

タイプ: apps/v1/StatefulSet

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

注意

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

Kubernetes 演算子 は、 MongoDBSearchリソースの statusフィールドにステータス情報を報告します。

status.loadBalancer

: オブジェクト

演算子が管理するロードバランサー(Env)のステータス。このフィールドは、spec.loadBalancer.managed が設定されている場合にのみ存在します。

status.loadBalancer.phase

: string

マネージド ロードバランサーの現在のフェーズ。指定できる値は、PendingRunningFailed などです。Kubernetes 演算子は、メインの status.phase とは独立してこのフェーズを報告するため、Env の配置を個別にモニターできます。

このフィールドは、LOADBALANCER 列の下の kubectl get 出力にも表示されます。

$ kubectl get mdbs
NAME PHASE VERSION LOADBALANCER AGE
mdb-rs-ext-lb-search Running 0.64.0 Running 14m

戻る

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