AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDBSearch リソースの仕様

MongoDBSearch カスタム リソースを使用すると、Kubernetes で MongoDB データベース配置と一緒に MongoDB Search とベクトル検索ノードを配置できます。MongoDBSearch リソースは、MongoDB 配置からデータを同期することで、全文検索機能とセマンティック検索機能を提供する mongot プロセスを配置します。

MongoDB Search とベクトル検索の配置について詳しくは、「MongoDB Search とベクトル検索を配置する」を参照してください。

次の例は、 MongoDBSearchカスタム リソースのリソース仕様を示しています。

注意

この例は機能する構成ではありません。参照のために、すべての使用可能なフィールドにサンプル値が入力されています。一部のフィールドは互いに排除され、一部のフィールドは他のフィールドより優先されます(例えば、source.externalsource.mongodbResourceRefより優先されます)。有効な組み合わせについては、以下のフィールドの説明を参照してください。

1spec:
2 source:
3 # external takes precedence over mongodbResourceRef
4 mongodbResourceRef:
5 name: mdb
6 external:
7 # hostAndPorts and shardedCluster are mutually exclusive
8 hostAndPorts:
9 - mdb-rs-external-0.example.com:27017
10 - mdb-rs-external-1.example.com:27017
11 - mdb-rs-external-2.example.com:27017
12 shardedCluster:
13 router:
14 hosts:
15 - mongos1.example.com:27017
16 - mongos2.example.com:27017
17 shards:
18 - shardName: shard-0
19 hosts:
20 - shard0-node1.example.com:27018
21 - shard0-node2.example.com:27018
22 - shardName: shard-1
23 hosts:
24 - shard1-node1.example.com:27018
25 - shard1-node2.example.com:27018
26 keyfileSecretRef:
27 name: mdb-keyfile
28 key: keyfile
29 tls:
30 # ca references a ConfigMap that contains ca.crt
31 ca:
32 name: mdbc-rs-ca
33 username: search-sync-source
34 passwordSecretRef:
35 name: mdbc-rs-search-sync-source-password
36 key: password
37 # x509 authentication (mutually exclusive with
38 # username/passwordSecretRef and source.tls)
39 x509:
40 clientCertificateSecretRef:
41 name: mongot-x509-client-cert
42 # Set only if the private key is encrypted
43 keyFilePasswordSecretRef:
44 name: mongot-x509-key-password
45 # TLS client certificate for SCRAM connections
46 # (mutually exclusive with x509):
47 # tls:
48 # clientCertificateSecretRef:
49 # name: mongot-scram-client-cert
50 # keyFilePasswordSecretRef:
51 # name: mongot-scram-key-password
52 security:
53 tls:
54 certificateKeySecretRef:
55 name: mdbs-tls-secret
56 certsSecretPrefix: my-prefix
57 # Set only if the private key is encrypted
58 keyFilePasswordSecretRef:
59 name: mdbs-tls-key-password
60 version: "1.70.1"
61 autoEmbedding:
62 embeddingModelAPIKeySecret:
63 name: embedding-model-api-query-key
64 providerEndpoint: https://ai.mongodb.com/v1/embeddings
65 featureFlags:
66 enableOverloadRetrySignal: true
67 logLevel: INFO
68 observability:
69 prometheus:
70 mode: enabled
71 port: 9946
72 metricsForwarder:
73 mode: auto
74 resourceRequirements:
75 requests:
76 cpu: 100m
77 memory: 128Mi
78 limits:
79 cpu: 250m
80 memory: 256Mi
81 deployment:
82 spec:
83 template:
84 spec:
85 nodeSelector:
86 kubernetes.io/os: linux
87 opsManager:
88 agentCredentials:
89 name: om-agent-api-key
90 projectConfigMapRef:
91 name: om-project-config
92 clusters:
93 - name: cluster-1
94 index: 0
95 replicas: 2
96 loadBalancer:
97 # Option 1: Operator-managed Envoy load balancer
98 managed:
99 externalHostname: "{shardName}.search.apps.example.com"
100 routerHostname: "search-router.apps.example.com:27028"
101 replicas: 2
102 resourceRequirements:
103 requests:
104 cpu: "100m"
105 memory: 128Mi
106 limits:
107 cpu: "500m"
108 memory: 512Mi
109 deployment:
110 spec:
111 template:
112 spec:
113 nodeSelector:
114 kubernetes.io/os: linux
115 retryPolicy:
116 numRetries: 2
117 perTryTimeout: "60s"
118 minMongotReadyReplicas: 1
119 # Option 2: User-provided (BYO) load balancer
120 # (mutually exclusive with managed)
121 unmanaged:
122 endpoint: "{shardName}-search-lb.corp.example.com:443"
123 resourceRequirements:
124 limits:
125 cpu: "3"
126 memory: 5Gi
127 requests:
128 cpu: "2"
129 memory: 4Gi
130 persistence:
131 single:
132 storage: 16G
133 storageClass: standard
134 statefulSet:
135 spec:
136 template:
137 spec:
138 nodeSelector:
139 kubernetes.io/os: linux
140 jvmFlags:
141 - -Xms2g
142 - -Xmx2g
143 advancedMongotConfigs:
144 someAdvancedSetting: value
145 syncSourceSelector:
146 matchTagSets:
147 - region: us-east-1
148 workload: search
149 - {}
150 shardOverrides:
151 - shardNames:
152 - shard-0
153 replicas: 3
154 resourceRequirements:
155 requests:
156 cpu: "4"
157 memory: 8Gi
158 persistence:
159 single:
160 storage: 32G
161 jvmFlags:
162 - -Xms4g
163 - -Xmx4g
164 statefulSet:
165 spec:
166 template:
167 spec:
168 nodeSelector:
169 disktype: ssd

このセクションでは、すべての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 リソースの一意の識別子。名前は有効な Kubernetes DNS サブドメイン名である必要があります。名前は短くしてください。Kubernetes Operator は、作成する Kubernetes リソースの名前をそれから引き出します。例えば、{name}-search-{clusterIndex}-{shardName}です。Kubernetes Operator は、生成されたすべての名前がラベルの Kubernetes DNS 制限である 63 文字、サブドメイン名の 253 文字に収まることを検証します。

spec.clusters

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

MongoDBSearch リソースの Kubernetes クラスターごとの配置構成。このフィールドは必須であり、少なくとも 1 つのエントリと多くとも 50 つのエントリを含む必要があります。単一クラスター配置の場合は 1 つのエントリ、またはマルチクラスター配置で mongot ポッドを実行する各 Kubernetes クラスターに 1 つのエントリを指定します。name および index を含む全フィールドの参照については、クラスター配置設定 を参照してください。

MongoDBSearchカスタム リソースは、次の設定を使用できます。

spec.source

: オブジェクト

mongot のMongoDBソースを記述する設定。ソースはレプリカセットとシャーディングされたクラスターにすることができます。この設定は、次の場合に必要です。

  • MongoDB は外部です

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

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

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

  • <MongoDBSearch.metadata.name>-<username>-password シークレットから mongot ユーザーのパスワード シークレットを見つけます。デフォルトのユーザー名の場合は <MongoDBSearch.metadata.name>-search-sync-source-password になります。

spec.source.mongodbResourceRef.name

: string

この MongoDB Search およびベクトル検索リソースに関連付ける MongoDB または MongoDBCommunity リソースの名前。Kubernetes Operator は、レプリカセットとシャーディングされたクラスターの両方をサポートしています。同じ MongoDB または MongoDBCommunity リソースを参照する MongoDBSearch リソースを複数持つことはできません。

このフィールドは、MongoDB または MongoDBCommunity リソースが同じ Kubernetes クラスターに配置され、かつ MongoDBSearch リソースと同じ名前空間にある場合にのみ使用します。データベースが Kubernetes 外に配置されている場合、または別の名前空間にある場合は、spec.source.external を使用してデータベースへの接続を構成します。両方のフィールドを設定すると、spec.source.external が優先されます。

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

spec.source.mongodbResourceRef.namespace

: string

spec.source.mongodbResourceRef.name が参照する MongoDB または MongoDBCommunity リソースの名前空間。Kubernetes 演算子は現在このフィールドを無視し、常に MongoDBSearch リソースの名前空間を使用します。クロス名前空間参照はサポートされていません。データベースが別の名前空間にある場合は、spec.source.external を使用します。

spec.source.username

: string

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

spec.source.passwordSecretRef.name

: string

mongotmongod で認証するために使用する必要があるパスワードを含むシークレットの名前。省略した場合、デフォルトは <MongoDBSearch.metadata.name>-<username>-password になります。ここで <username>spec.source.username の値です。デフォルトのユーザー名 search-sync-source の場合、これは <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.usernamespec.source.tls と相互に排他的です。x509 とパスワード認証の両方を指定すると、Kubernetes 演算子は構成を拒否します。

spec.source.x509.clientCertificateSecretRef

: オブジェクト

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

  • tls.crt — クライアント証明書

  • tls.key — 秘密キー

秘密キーがパスワードで暗号化されている場合は、パスワードを別の Secret に保存し、spec.source.x509.keyFilePasswordSecretRef で参照します。

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

spec.source.x509.keyFilePasswordSecretRef

: オブジェクト

spec.source.x509.clientCertificateSecretRef 内のパスワード暗号化された秘密キーを複号化するパスワードを含むシークレット。シークレットには keyFilePassword キーの下にパスワードを含める必要があります。秘密キーが暗号化されていない場合は、このフィールドを省略します。

spec.source.tls

: オブジェクト

SCRAM(ユーザー名とパスワード)認証を使用する場合、mongot 同期ソース接続の TLS クライアント証明書を構成します。このフィールドを設定すると、mongot はソース MongoDB 配置との TLS ハンドシェイク中にクライアント証明書を提示します(相互 TLS トランスポート)。mongot は、ユーザー名とパスワードを使用して引き続き認証します。

このフィールドは SCRAM 認証 (spec.source.passwordSecretRef) のみで使用します。このフィールドは spec.source.x509 と排他関係にあります。クライアント証明書自体を認証資格情報として使用する場合は、代わりに spec.source.x509 を使用します。

spec.source.tls.clientCertificateSecretRef

: オブジェクト

ソース MongoDB 配置との TLS ハンドシェイク中に mongotが提示する TLS クライアント証明書とキーを含むシークレット。シークレットには、次のキーが含まれている必要があります。

  • tls.crt — クライアント証明書

  • tls.key — 秘密キー

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

spec.source.tls.keyFilePasswordSecretRef

: オブジェクト

spec.source.tls.clientCertificateSecretRef 内のパスワード暗号化された秘密キーを複号化するパスワードを含むシークレット。シークレットには keyFilePassword キーの下にパスワードを含める必要があります。秘密キーが暗号化されていない場合は、このフィールドを省略します。

spec.source.external

: オブジェクト

外部データソースを説明する設定。Kubernetes 演算子を使用して配置されていない外部 MongoDB に接続したい場合のみ、これらの設定を指定します。これらの設定を指定すると、spec.source.mongodbResourceRef より優先されます。

spec.source.external.hostAndPorts

タイプ: 文字列の配列

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

spec.source.external.shardedCluster

: オブジェクト

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

spec.source.external.shardedCluster.router.hosts

タイプ: 文字列の配列

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

spec.source.external.shardedCluster.shards

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

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

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

: string

シャードの論理名。名前はすべてのシャードで一意である必要があり、Kubernetes DNS ラベル名のルール (RFC 1123) に準拠している必要があります。小文字の英数字とハイフン (-) を使用し、英数字で始まり、英数字で終わり、最大長は 63 文字です。ピリオド (.) とアンダースコア (_) は使用できません。

Kubernetes 演算子は、metadata.name、クラスター インデックス、およびshardNameを組み合わせて、作成するKubernetesリソースの名前にします。また、生成されたすべての名前がラベルのKubernetes DNS制限の63文字、サブドメイン名の253文字の範囲内に収まっていることを検証します。shardNameをこれらの制限に収まる程度に短くします。

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

タイプ: 文字列の配列

このシャードの mongod レプリカセットのノードのエンドポイントとなる接続されたデバイスのリスト( host:port形式 )。少なくとも 1 つのエントリを指定します。各シャードには独自の mongot インスタンスのグループがあり、そのシャードのレプリカセットからのみデータをソースとします。

spec.source.external.keyfileSecretRef

: オブジェクト

mongot が外部 MongoDB 配置に接続するために使用する mongod キーファイルを含むシークレット。name フィールドは必須です。key フィールドは任意です。

spec.source.external.tls.ca.name

: string

mongod ノードで使用される TLS 証明書を発行した証明機関の信頼できるチェーンを含む ConfigMap の名前。この ConfigMap 内の ca.crt キーの下に証明書(または証明書チェーン)を指定する必要があります。

次の設定は、必要な spec.clusters 配列の各エントリを説明します。

spec.clusters

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

MongoDBSearch リソースの Kubernetes クラスターごとの配置。このフィールドは必須であり、少なくとも 1 つ、多くても 50 つのエントリが含まれている必要があります。replicasloadBalancerresourceRequirementspersistencejvmFlagsstatefulSetなどのすべてのサイズ設定と配置設定は、clusters エントリ内に存在します。これらの設定には、トップレベルの同等のものはありません。

単一クラスター配置の場合は、1 つのエントリを指定します。nameindex は省略できます。

マルチクラスター配置の場合は、mongot ポッドを実行する各 Kubernetes クラスターについて 1 つのエントリを指定します。複数のエントリを指定する場合は、次のルールが適用されます。

  • name すべてのエントリで必要であり、一意である必要があります。

  • index すべてのエントリで必要であり、一意である必要があります。

  • MongoDB ソースは外部である必要があります (spec.source.external)。複数のクラスター配置では、演算子マネージドの MongoDB ソースはサポートされません。

  • すべてのエントリで、演算子によってマネージドされるロード バランサー (loadBalancer.managed) を構成する必要があります。マルチクラスター配置は、管理されていないロード バランサーをサポートしていません。

Kubernetes 演算子は、CRD 検証ルールと調合時の検証を通じてこれらのルールを強制します。

spec.clusters[].name

: string

このエントリの Kubernetes クラスター名。最大長さは 253 文字です。単一クラスター配置の場合、このフィールドは省略できます。

spec.clusters に複数のエントリが含まれる場合、name が必要であり、エントリ間で一意である必要があります。リソースの作成後は変更できません。

spec.clusters[].index

タイプ: 整数

このエントリの Kubernetes クラスターの安定した整数識別子。値は 0 から 999 の間であり、エントリ間で一意である必要があります。spec.clusters に複数のエントリが含まれる場合、すべてのエントリで index が必要です。

Kubernetes 演算子には、このクラスターエントリのために作成される Kubernetes リソースの名前にインデックスが含まれます。例えば、StatefulSets の場合は {name}-search-{index}、Services の場合は {name}-search-{index}-svc、ConfigMaps の場合は {name}-search-{index}-config です。シャーディングされたクラスターソースの場合、名前にはシャード名も含まれます。例 {name}-search-{index}-{shardName}{name}-search-{index}-{shardName}-svc です。

警告

既存のエントリの index を変更しないでください。インデックスはリソース名の一部であるため、変更すると Kubernetes 演算子は新しいインデックスの下に新しいリソースを作成し、古いインデックスのリソースを孤立させます。これは、プロキシサービス ({name}-search-{index}[-{shardName}]-proxy-svc)、Envoy 配置と ConfigMap ({name}-search-lb-{index})、ロードバランサー証明書シークレット、およびメトリクスフォワーダーリソース ({name}-search-metrics-forwarder-{index})を含む、インデックスを持つすべてのリソースに適用されます。

単一クラスター配置の場合は、このフィールドを省略できます。この場合、デフォルトは 0 になります。ただし、各ノード Kubernetes クラスターで固有の Kubernetes 演算子インスタンスを実行する場合は、各クラスターの MongoDBSearch リソースで index を明示的に個別の値に設定します。個別のインデックスにより、生成されたホスト名とリソース名がクラスター間で衝突することがなくなります。

spec.clusters[].replicas

タイプ: 整数

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

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

spec.clusters[].replicas0 に設定すると、Kubernetes 演算子 はこのクラスターの mongot 配置をオフラインにします。Kubernetes 演算子 は StatefulSet をゼロポッドに増やし、MongoDBSearch リソースとその他の Kubernetes リソースを所定の場所に保持します。

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

spec.clusters[].resourceRequirements

タイプ: Core/v1/ResourceRequirements

mongodb-search コンテナがリクエストできる CPU とメモリ、および制限される CPU とメモリ。

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

requests:
cpu: 2
memory: 4Gi
spec.clusters[].resourceRequirements.limits

: オブジェクト

mongodb-search コンテナが消費できるリソース、CPU 、メモリの上限。デフォルトでは、制限は設定されていません。

spec.clusters[].resourceRequirements.requests

: オブジェクト

mongodb-search コンテナに要求される CPU とメモリの量。cpu または memory のいずれか一方のみを指定した場合、Kubernetes 演算子は他方にデフォルト値を適用します。

spec.clusters[].persistence.single

: オブジェクト

MongoDB Search とベクトル検索のインデックスが保存される永続化ボリュームのストレージ構成。各検索インスタンス (pod) は独自の独立したストレージを持っています。

スカラー
データ型
説明

labelSelector

string

storage

string

マウントする必要がある永続ボリュームの最小サイズ。デフォルト値は16Gです。

storageClass

string

Persistent Volume Claim で指定されたストレージの種類。

MongoDBSearch すべてのデータに1つのボリュームを使用するsingle持続モードのみをサポートします。CRD スキーマには spec.clusters[].persistence.multiple フィールドも含まれていますが、Kubernetes Operator はこれを適用しません。persistence を省略すると、Kubernetes Operator は spec.clusters[].persistence.single.storage16G に設定します。

spec.clusters[].loadBalancer

: オブジェクト

mongod (または mongos) と mongot の間の L7 ロード バランシングの構成。spec.clusters[].replicas1 より大きい場合、このフィールドは必須です。

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

spec.clusters 内のすべてのエントリは、ロード バランサー モードに同意する必要があります。すべてのエントリで loadBalancer.managed を設定するか、すべてのエントリで loadBalancer.unmanaged を設定するか、またはどのエントリも loadBalancer を設定しないかのいずれかです。Kubernetes Operator はミックス モードを拒否します。マルチクラスター配置はマネージド モードのみをサポートします。

spec.clusters[].loadBalancer.managed

: オブジェクト

演算子マネージド型のEnvoy ロード バランサーを構成します。このフィールドは spec.clusters[].loadBalancer.unmanaged と排他的です。

シャーディングされたクラスターソースの場合は、マネージドロードバランサーを使用する場合は spec.security.tls も構成する必要があります。Envoy プロキシは、TLS を必要とする SNI を使用して正しいシャードにトラフィックをルーティングします。

spec.clusters[].loadBalancer.managed.externalHostname

: string

受信リクエストの SNI マッチングに Envoy プロキシが期待するホスト名。Envoy TLS サーバー証明書には、このホスト名を SAN (サブジェクト代替名)フィールドに含める必要があります。

シャーディングされたクラスターソースの場合、値には Kubernetes Operator がシャードごとに展開する {shardName} プレースホルダーが含まれている必要があります。各シャードには固有のホスト名があり、Envoy TLS サーバー証明書には、展開されたすべてのシャードホスト名が SAN に含まれている必要があります。レプリカセットソースの場合、{shardName} プレースホルダーは使用しないでください。

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

複数のクラスター配置では、各クラスターエントリは通常、独自のホスト名を使用します。ただし、Kubernetes Operator は、複数のクラスターで 1 つのホスト名の共有を許可します。例えば、複数のクラスターの Envoy プロキシの前面にアベイラビリティーゾーンにまたがるフェイルオーバープロキシがある場合です。

spec.clusters[].loadBalancer.managed.routerHostname

: string

mongos ルーターがマネージド Envoy ロードバランサーを介してこのクラスターの mongot インスタンスにアクセスするためのエンドポイントで、host:port 形式です。Kubernetes Operator は、クラスター レベルのルーティング チェーンでの SNI マッチングにホスト名を使用するため、Envoy TLS サーバー証明書にはこのホスト名を SAN に含める必要があります。

外部のシャーディングされた MongoDB ソース (spec.source.external.shardedCluster)でマネージドロード バランサーを使用する場合、このフィールドが必要になります。Kubernetes 演算子は、レプリカセット ソースおよび演算子マネージド MongoDB についてはこのフィールドを無視します。

externalHostname とは異なり、Kubernetes 演算子はこの値をそのまま使用します。したがって、値に {shardName} プレースホルダーを含めることはできません。このエンドポイントは、mongos のシャードに依存しないエントリポイントです。

spec.clusters[].loadBalancer.managed.replicas

タイプ: 整数

この Kubernetes クラスターに配置する Envoy プロキシのポッド数。値は 1 以上である必要があります。省略された場合、デフォルトは 1 になります。

spec.clusters[].loadBalancer.managed.resourceRequirements

タイプ: Core/v1/ResourceRequirements

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

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

requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
spec.clusters[].loadBalancer.managed.deployment

: オブジェクト

Kubernetes 演算子が演算子によって作成されたEnvoy 配置にマージする上書き。このオブジェクトには、labelsannotations を含む metadata フィールドと、apps/v1/DeploymentSpec オブジェクトを含む spec フィールドが含まれています。

spec.clusters[].loadBalancer.managed.retryPolicy

: オブジェクト

Envoy プロキシがアップストリーム mongot インスタンスへの個別の gRPC ストリームに適用する再試行動。Envoy プロキシは、失敗した試行とは異なる mongot ホストに各再試行を送信します。

このフィールドを省略すると、Envoy プロキシはデフォルト値で再試行します。デフォルト値は、トライごとのタイムアウトが 60s の場合に 2 回再試行するというものです。

spec.clusters[].loadBalancer.managed.retryPolicy.numRetries

タイプ: 整数

リクエストごとの最大再試行回数。値は 1 以上である必要があります。省略すると、リクエストごとに合計 3 回の試行が許可される 2 がデフォルトに設定されます。

spec.clusters[].loadBalancer.managed.retryPolicy.perTryTimeout

: string

元のリクエストを含む各個の試行のタイムアウトを期間 string として表示します(例:"30s")。省略された場合、デフォルトは "60s" になります。

spec.clusters[].loadBalancer.managed.minMongotReadyReplicas

タイプ: 整数

mongot グループ (例えば、1 シャードの mongot インスタンス)が Envoy プロキシがトラフィックをルーティングする前に持つ必要がある、準備できている mongot レプリカの最小数。グループがこのスレッショルを下回っている間、Envoy プロキシはそのグループ宛てのトラフィックを正常な mongot グループに転送し、リクエストを routed_from_another_shard ヘッダーでマークします。これらのリクエストはエラーではなく、空の結果を返します。

値は 1 以上である必要があります。省略された場合、デフォルトは 1 になります。

spec.clusters[].loadBalancer.unmanaged

: オブジェクト

ユーザー提供の (Bring Your Own) L7 ロードバランサーを構成します。このフィールドは spec.clusters[].loadBalancer.managed と排他関係にあります。マルチクラスター配置は、管理外のロードバランサーをサポートしません。

spec.clusters[].loadBalancer.unmanaged.endpoint

: string

host:port 形式の BYO ロード バランサーのエンドポイントとなる接続されたデバイス。spec.clusters[].loadBalancer.unmanaged を構成する場合は、このフィールドを指定する必要があります。

Kubernetes Operator が MongoDB 配置を管理する場合(spec.source.mongodbResourceRef を使用)、Kubernetes Operator はこの値を mongod 構成に mongotHostsearchIndexManagementHostAndPort として書き込みます。

外部のシャーディングされたクラスターソースの場合、値には Kubernetes Operator がシャードごとに展開する {shardName} プレースホルダーが含まれている必要があり、プレースホルダー以外の内容も含まれている必要があります。外部のレプリカセットソースの場合、値に {shardName} プレースホルダーを含めることはできません。

spec.clusters[].shardOverrides

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

クラスターのデフォルトとは異なり、このクラスターエントリ内の特定のシャードのサイズを変更するオーバーライド。

このフィールドは、外部のシャーディングされたクラスターソース (spec.source.external.shardedCluster) のみで使用できます。参照する各シャード名は spec.source.external.shardedCluster.shards[*].shardName に存在する必要があり、各シャードはクラスターエントリーごとに最大 1 回だけ上書きできます。

各オーバーライドには必須の shardNames リスト (少なくとも 1 つのエントリ)と任意の replicasresourceRequirementspersistencejvmFlagsstatefulSet フィールドが含まれます。オーバーライドで replicasresourceRequirementspersistencejvmFlags を設定すると、名前付きシャードのクラスター値が置き換えられます。jvmFlags は、空でないリストに設定した場合にのみクラスター値を置き換えます。Kubernetes Operator は、statefulSet をクラスター値にディープマージします。設定されていないフィールドはクラスター値を継承します。

spec.clusters[].syncSourceSelector.matchTagSets

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

レプリカセットタグにより同期ソース mongod ノードを選択するレプリカセットタグセットの順序付きリスト。Kubernetes Operator は、リストを mongot 構成に渡します。mongot は、最初に一致するタグセットが選択したノードから同期し、セカンダリノードを優先します。

各エントリは、タグ名とタグ値のマップです。空のドキュメント ({})はどのノードにもマッチするため、前のタグセットがマッチしない場合のマッチオールのフォールバックとして末尾の{}エントリを追加できます。最大50エントリを指定できます。

spec.clusters[].jvmFlags

タイプ: 文字列の配列

mongot プロセスに渡される JVM フラグ。各フラグは -X-XX:、または -D で始まる必要があり、空白を含むことはできません。使用できるのは英数字と ._+:-= の文字のみです。Kubernetes 演算子は、これらのルールに一致しないフラグを拒否します。

このフィールドに -Xms または -Xmx を指定しない場合、Kubernetes 演算子は両方を spec.clusters[].resourceRequirements.requests.memory の半分に設定することでヒープサイズを自動計算します。リソース要件を指定しない場合、Kubernetes Operator はデフォルトの 4Gi メモリリクエストを使用し、約 -Xmx2048m -Xms2048m を生成します。Kubernetes Operator は、常に演算子によって計算されたフラグの後に提供されたフラグを追加します。

spec.clusters[].statefulSet

: オブジェクト

Kubernetes 演算子が mongot ポッドを配置するために作成する StatefulSet の上書き。このオブジェクトには、labels および annotations を含む metadata フィールドと、apps/v1/StatefulSetSpec オブジェクトを含む spec フィールドが含まれます。Kubernetes 演算子は常に上書きを最後に適用するため、Kubernetes 演算子が計算する設定が上書きされます。

注意

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

spec.clusters[].advancedMongotConfigs

: オブジェクト

このクラスターエントリの高度な mongot 設定。Kubernetes 演算子は、mongot 構成ファイルの advancedConfigs キーの下の値を、読み取りまたは変更せずにそのままレンダーします。このフィールドは、MongoDBSearch リソースがファーストクラスフィールドとして公開していない mongot 設定にのみ使用します。

spec.security

: オブジェクト

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

spec.security.tls

: オブジェクト

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

シャーディングされたクラスターソースでマネージドロードバランサーを使用する場合、このフィールドは必須です。Envoy プロキシは、TLS ClientHello に依存する SNI を使用して正しいシャードにトラフィックをルーティングします。この構成で spec.security.tls を省略すると、Kubernetes 演算子は調和に失敗します。

spec.security.tls.certificateKeySecretRef.name

: string

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

秘密キー(tls.key)と証明書(tls.crt)を含む同じ名前空間内の TLS シークレットの名前。Kubernetes 演算子は、下位互換性のためにレプリカセットの配置でこのフィールドを引き続きサポートします。シャーディングされたクラスターの配置の場合、Kubernetes 演算子は、単一のシークレット参照ではシャードごとの証明書をカバーできないため、検証中にこのフィールドを拒否します。

spec.security.tls.certsSecretPrefix

: string

Kubernetes Operator が命名規約により TLS シークレット名を導出するために使用する接頭辞。このフィールドを設定すると、Kubernetes Operator は次のパターンに従ってシークレットを検索します。

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

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

{certsSecretPrefix}-{name}-search-cert

シャーディングされた mongot 証明書(クラスターおよびシャードごと)

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

マネージド ロードバランサーサーバー証明書(クラスターごと、すべてのトポロジ)

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

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

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

Kubernetes Operatorは、すべてのトポロジーについて、クラスターごとに1つのマネージド ロード バランサー サーバー サーティフィケートを使用します。シャーディングされたクラスターの場合、このサーティフィケートのSANには、externalHostnamerouterHostnameからの拡張されたすべてのシャード ホスト名が含まれている必要があります。

Kubernetes Operator は、次の順序で mongot サーバー証明書の秘密名を解決します。

  1. spec.security.tls.certificateKeySecretRef.nameを設定すると、Kubernetes 演算子はその名前を使用します。

  2. certsSecretPrefix を設定すると、Kubernetes 演算子は前の表の命名パスワードなしを使用します。

  3. いずれのフィールドも設定しない場合、Kubernetes Operator はレプリカセット配置にデフォルト名 {name}-search-cert、シャーディング配置にシャードごとのデフォルトパスワードなし {name}-search-{clusterIndex}-{shardName}-cert を使用します。

certsSecretPrefixを設定しない場合、マネージド ロード バランサー証明書にもデフォルト名が使用されます。Kubernetes Operator は、サーバー証明書に {name}-search-lb-{clusterIndex}-cert、クライアント証明書に {name}-search-lb-{clusterIndex}-client-certをマウントします。

spec.security.tls.keyFilePasswordSecretRef

: オブジェクト

TLS 証明書シークレットのパスワードで暗号化されたサーバーの秘密キーを複号化するパスワードを含むシークレット。シークレットには、keyFilePasswordキーの下にパスワードが含まれている必要があります。サーバーの秘密キーが暗号化されていない場合は、このフィールドを省略します。

spec.logLevel

: string

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

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

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

spec.observability.prometheus

: オブジェクト

mongot の Prometheus メトリクスエンドポイントの構成。このフィールドを省略すると、Kubernetes Operator はデフォルトポート 9946 でメトリクスエンドポイントを有効にします。

spec.observability.prometheus.mode

: string

mongot で Prometheus メトリクスエンドポイントを有効または無効にします。値は enabled または disabled になります。省略した場合、デフォルトは enabled になります。

spec.observability.prometheus.port

タイプ: 整数

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

spec.observability.metricsForwarder

: オブジェクト

Kubernetes Operator が作成して mongot Prometheus メトリクスをスクレイピングし、MongoDB Ops Manager に転送する配置であるメトリクスフォワーダーの配置。

spec.observability.metricsForwarder.mode

: string

Kubernetes Operator がメトリクス フォワーダーを作成するかどうか。値は次のいずれかになります。

  • auto — Kubernetes Operator は演算子マネージド MongoDB (Ops Manager バックアップ)ソースのフォワーダーを作成します。外部ソースの場合は、spec.observability.metricsForwarder.opsManager を設定した場合にのみ作成します。MongoDBCommunity ソースの場合、Kubernetes Operator はフォワーダーを作成しません。

  • enabled — Kubernetes Operator は常にフォワーダーを作成します。ソースが MongoDBCommunity リソースの場合、Kubernetes Operator はフォワーダーが MongoDBCommunity ソースでサポートされていないためエラーを報告します。

  • disabled — Kubernetes 演算子はフォワーダーを作成しません。

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

enabled モードと auto モードでは、Prometheus エンドポイント (spec.observability.prometheus) を有効にする必要があります。エンドポイントを無効にすると、Kubernetes Operator は Invalid メトリクス フォワーダー ステータスを報告します。

spec.observability.metricsForwarder.resourceRequirements

タイプ: Core/v1/ResourceRequirements

メトリクスフォワーダーコンテナがリクエストできる CPU とメモリ、および制限できる CPU とメモリ。省略すると、Kubernetes Operator は cpu: 100mmemory: 128Mi のリクエスト、cpu: 250mmemory: 256Mi の制限を使用します。

spec.observability.metricsForwarder.deployment

: オブジェクト

Kubernetes 演算子が演算子作成のメトリクスフォワーダー配置に統合する上書き設定。このオブジェクトには、labelsannotations を含む metadata フィールドと、apps/v1/DeploymentSpec オブジェクトを含む spec フィールドが含まれています。

spec.observability.metricsForwarder.opsManager

: オブジェクト

メトリクスフォワーダーがメトリクスを送信する対象の MongoDB Ops Manager プロジェクトと認証情報。省略すると、Kubernetes 演算子はソース MongoDB リソースの接続構成からプロジェクトと認証情報を導出します。ソース MongoDB リソースが存在しない外部 MongoDB ソースの場合は、このフィールドを設定します。

このフィールドを設定する場合は、agentCredentials.name (モンゴDB Ops Manager エージェント API キーを含む Secret) と projectConfigMapRef.name (モンゴDB Ops Manager プロジェクト構成を含む ConfigMap) の両方を設定する必要があります。

重要

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

spec.autoEmbedding

: オブジェクト

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

spec.autoEmbedding.embeddingModelAPIKeySecret.name

: string

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

embeddingModelAPIKeySecret は、spec.autoEmbedding.providerEndpoint が演算子管理のセルフホスト型 Voyage AI 埋め込みサービスを指す場合にのみ省略できます。そうでない場合、Kubernetes Operator には必要です。

spec.autoEmbedding.providerEndpoint

: string

埋め込みを生成するための埋め込みモデルエンドポイント URL。

spec.featureFlags

: オブジェクト

mongotの機能フラッグ。フラッグを trueに設定すると、Kubernetes 演算子はそれを mongot構成にレンダーします。featureFlagsオブジェクトまたは個別のフラッグを省略すると、そのフラッグのスキーマデフォルトが適用されます(enableOverloadRetrySignalの場合は true)。

spec.featureFlags.enableOverloadRetrySignal

タイプ: ブール値

mongotオーバーロード再試行シグナルを有効にします。このフラッグを有効にすると、mongotは gRPC RESOURCE_EXHAUSTED応答を介してアップストリームプロキシにロードシェッディングをシグナル送信します(演算子マネージド Envoy ロードバランサーなど)。その後、プロキシは別の mongotインスタンスでリクエストを再試行します。

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

spec.version

: string

mongodb-search Docker イメージのバージョン。省略すると、Kubernetes Operator は、バンドルされているデフォルトの MongoDB Search バージョンを使用します。Kubernetes Operator をアップグレードする際の自動アップグレードを防止するため、バージョンを明示的に設定できます。

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

status.phase

: string

MongoDBSearch リソースの現在のフェーズ。可能な値には PendingRunningFailedDisabledUpdated、および Unsupported が含まれます。

status.message

: string

現在のステータスに関する詳細が記述された人間が読み取りやすいメッセージ。

status.lastTransition

: string

status.phase の最後の遷移のタイムスタンプ。

status.observedGeneration

タイプ: 整数

Kubernetes 演算子が最後に処理したMongoDBSearchリソースの生成。

status.warnings

タイプ: 文字列の配列

Kubernetes 演算子がリソースに報告する警告。

status.version

: string

Kubernetes 演算子が調整した MongoDB Search のバージョン (mongot)。

status.resourcesNotReady

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

まだ準備できていない依存する Kubernetes リソース。各エントリには、リソースのkindname、任意のmessageerrorsのリストが報告されます。

status.pvc

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

mongot StatefulSets の永続ボリューム要求の状態。各エントリには、要求が属する phasestatefulsetName が報告されます。

status.loadBalancer

: オブジェクト

演算子が管理するロードバランサー(Envoy)のステータス。このフィールドは、spec.clusters[].loadBalancer.managed が設定されている場合にのみ存在します。マルチクラスター配置の場合、Kubernetes 演算子はすべてのクラスターの Envoy 配置で最悪のフェーズを報告します。

status.loadBalancer.phase

: string

マネージドロードバランサーの現在のフェーズ。指定できる値は、PendingRunningFailed です。このフィールドは、LOADBALANCER 列の下の kubectl get 出力に表示されます。

status.loadBalancer.message

: string

マネージドロードバランサーのステータスに関する詳細を含む人間が読み取り可能なメッセージ。

status.metricsForwarder

: オブジェクト

メトリクスフォワーダーのステータス。

status.metricsForwarder.phase

: string

メトリクスフォワーダーの現在のフェーズ。指定できる値は、PendingRunningFailed です。spec.observability.metricsForwarder.modedisabled に設定すると、フェーズは Disabled を報告します。このフィールドは、METRICSFORWARDER 列の下の kubectl get 出力に表示されます。

status.metricsForwarder.message

: string

メトリクスフォワーダーの状態に関する詳細な人間が読み取り可能なメッセージ。