注意
このページのMongoDB Ops Managerが表示されている場所では、 Cloud Managerを置き換えることができます。
MongoDB Controls for Kubernetes Operator は、ユーザーが書込んだ仕様ファイルからKubernetes State化し、
Kubernetes Operator は、 Kubernetes内のMongoDB固有のリソースをカスタム リソースとして作成します。
これらのカスタム リソースを管理するには、次のプロセスを使用します。
MongoDBリソース仕様を作成または更新します。Kubernetes Operator 用のMongoDBパラメーターを使用して、 Kubernetes環境に適用します。その結果、 Kubernetes Operator は次のアクションを実行します。
定義された StateftSets、サービス、およびその他のKubernetesリソースを作成します。
変更を反映するようにMongoDB Ops Manager配置構成を更新します。
Each MongoDB resource uses an object specification in YAML to define the characteristics and settings of the MongoDB object: standalone, replica set, and sharded cluster.
Common Resource Settings
すべてのリソース タイプでは、次の設定を使用する必要があります。
必須
spec.credentials型: string
必須。Cloud ManagerまたはMongoDB Ops Manager Manager と通信するためのKubernetes MongoDB Ops Manager API認証情報として作成したKubernetesシークレットの名前。
The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.
重要
演算子がシークレットへの変更を管理
Kubernetes Operator は、シークレットへの変更を追跡し、
MongoDBリソースの状態を調整します。
spec.persistentタイプ: ブール値
デフォルト: True
警告: コンテナに永続ボリュームへの書込み (write) 権限を付与します。 Kubernetes演算子は、
fsGroup = 2000runAsUser = 2000で 、 、 を設定します。 Kubernetes Operator は、 をrunAsNonRoot = truesecurityContextfsgrouprunAsUserと等しく設定して、コンテナでメイン プロセスを実行するユーザーがボリュームを書込み可能にします。詳細については、 Kubernetesドキュメントの「 ポッドまたはコンテナのセキュリティ コンテキストの構成 」および関連するディスカッションを参照してください。リソースを再デプロイしても永続ボリュームの問題が修正されない場合は、 MongoDBサポート にお問い合わせください。Disk UsageDisk IOPS永続ボリュームを使用しない場合、この配置のデータを確認するときに、Processes Deploymentページまたは ページの タブに チャートとMetrics チャートを表示することはできません。
spec.version型: string
この
MongoDBリソースにインストールした MongoDB のバージョン。重要
互換性のある MongoDB Server バージョンを選択していることを確認してください。
互換性のあるバージョンは、MongoDB database リソースが使用する基本イメージによって異なります。
注意
If you update this value to a later version of MongoDB for your database resources, the feature compatibility version remains at the MongoDB version you're upgrading from to give you the option to downgrade if necessary. If you want the feature compatibility version to match the new MongoDB version, you must manually set
spec.featureCompatibilityVersionto the new version or toAlwaysMatchVersion. To learn more, seespec.featureCompatibilityVersion.
条件付き
すべてのリソースは、次のいずれかの設定を使用する必要があります。
spec.opsManager.configMapRef.name型: string
Cloud Managerまたは Ops Manager 接続構成を含む ConfigMap
spec.cloudManager.configMapRef.nameの名前。 設定はこの設定のエイリアスであり、代わりに使用できます。この値は、作成するリソースと同じ名前空間に存在する必要があります。
重要
演算子が ConfigMap への変更を管理
Kubernetes 演算子は、ConfigMap への変更を追跡し、
MongoDBリソースの状態を調整します。
spec.cloudManager.configMapRef.name型: string
Alias for
spec.opsManager.configMapRef.name.
任意
すべてのリソースの種類では、次の設定を使用できます。
metadata.annotations.mongodb.com/v1.architecture型: string
具体的な配置で使用されるコンテナ アーキテクチャを決定します。
実行時に MongoDB バイナリをダウンロードするデフォルトの非静的コンテナ、または
実行時に不変である静的コンテナ(パブリック プレビュー) 。
指定できる値は次のとおりです。
staticnon-static
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-project annotations: mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotate.sizeThresholdMBタイプ: 整数
MongoDB Agent がログをローテーションする前のバックアップ ログファイルの最大サイズ(MB 単位)。
spec.agent.mongod.auditlogRotate.sizeThresholdMBタイプ: 数値
MongoDB Agent がログをローテーションする前の監査ログファイルの最大サイズ(MB 単位)。
spec.agent.mongod.auditlogRotate.numTotalタイプ: 整数
MongoDB Ops Managerが保持する 監査ログ ファイルの合計数。 この値を設定しない場合、監査ログファイルの合計数はデフォルトで0になります。
spec.agent.mongod.auditlogRotate.percentOfDiskspaceタイプ: 数値
MongoDB Ops Managerがログファイルを保存するために使用できる合計ディスク領域の最大パーセンテージは小数で表されます。 この制限を超えた場合、 MongoDB Ops Managerは、この制限を満たすまで圧縮されたログファイルを削除します。 MongoDB Ops Managerは、最も古いログファイルを最初に削除します。
デフォルトは0.02です。
spec.agent.mongod.logRotate.sizeThresholdMBタイプ: 整数
Maximum size in MB for an individual log file before Ops Manager rotates it. Ops Manager rotates the log file immediately if it meets the value given in either this
sizeThresholdMBor thespec.agent.mongod.logRotate.timeThresholdHrs.
spec.agent.mongod.logRotate.timeThresholdHrsタイプ: 整数
次のローテーションまでの個々のログファイルの最大期間(時間単位)。 は最後のローテーション以降の時間です。
Ops Manager rotates the log file once the file meets either this
timeThresholdHrsor thespec.agent.mongod.logRotate.sizeThresholdMB.
spec.agent.monitoringAgent.logRotate.sizeThresholdMBタイプ: 整数
MongoDB Agent が監視ログをローテーションする前の、個々のログファイルの最大サイズ(MB 単位)。
spec.agent.readinessProbe.environmentVariables型: オブジェクト
Readness Probe のログファイルを制御するために使用される次の環境変数を構成します。
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-project spec: agent: readinessProbe: environmentVariables: READINESS_PROBE_LOGGER_BACKUPS: 1 READINESS_PROBE_LOGGER_MAX_SIZE: 10 READINESS_PROBE_LOGGER_MAX_AGE: 3 READINESS_PROBE_LOGGER_COMPRESS: true MDB_WITH_AGENT_FILE_LOGGING: false LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
spec.featureCompatibilityVersion型: string
MongoDBのアップグレード後に、以前のメジャーMongoDBバージョンにデフォルト設定されます。
新しいメジャー バージョンへのアップグレードに関連して発生するデータの変更を制限します。 例、 MongoDB 5.0からMongoDB 6.0にアップグレードする場合、機能の互換性バージョンは5.0のままになり、必要に応じてダウングレードのオプションが提供されます。
機能の互換性バージョンを新しいMongoDBバージョンと一致させる場合は、
featureCompatibilityVersionを新しいバージョンに手動で設定する必要があります。 例、featureCompatibilityVersion: 6.0。または、
AlwaysMatchVersionオプションを有効にすると、アップグレード中に機能の互換性バージョンがMongoDBバージョンと一致するように自動的に更新されます。 例、featureCompatibilityVersion: AlwaysMatchVersion。To learn more about feature compatibility, see
setFeatureCompatibilityVersionin the MongoDB Manual.
spec.clusterDomain型: string
デフォルト: cluster.local
Kubernetes 演算子を配置する Kubernetes クラスターのドメイン名。Kubernetes が StatefulSet を作成すると、Kubernetes は各 Pod に FQDN を割り当てます。Cloud Manager または Ops Manager を更新するには、Kubernetes 演算子は、提供されたクラスター名を使用して、各 FQDN をPod ごとに計算します。Kubernetes は、これらのホスト名をクエリするための API を提供していません。
警告
spec.clusterDomainKubernetesクラスターにデフォルトの 以外のデフォルトのドメインがある場合は、cluster.localを設定する必要があります。デフォルトを使用せず、 オプションも設定しない場合、spec.clusterDomainKubernetes演算子は期待どおりに機能しない可能性があります。
spec.clusterName型: string
デフォルト: cluster.local
Kubernetes 演算子を配置する Kubernetes クラスターのドメイン名。Kubernetes が StatefulSet を作成すると、Kubernetes は各 Pod に FQDN を割り当てます。Cloud Manager または Ops Manager を更新するには、Kubernetes 演算子は、提供されたクラスター名を使用して、各 FQDN をPod ごとに計算します。Kubernetes は、これらのホスト名をクエリするための API を提供していません。
警告
spec.clusterDomainKubernetesクラスターにデフォルトの 以外のデフォルトのドメインがある場合は、cluster.localを設定する必要があります。デフォルトを使用せず、 オプションも設定しない場合、spec.clusterDomainKubernetes演算子は期待どおりに機能しない可能性があります。
spec.service型: string
デフォルト: <resource_name>+"-svc" および <resource_name>+"-svc-external"
Atlas App Servicesが作成または使用するKubernetesサービスの名前。この名前のサービスがすでに存在する場合、 MongoDB Controls for Kubernetes Operator はサービスを削除または再作成しません。この設定により、独自のカスタム サービスを作成し、 Kubernetes Operator でそれらを再利用できます。
spec.logLevel型: string
デフォルト: INFO
ポッド内でのオートメーションエージェントのログ記録のレベルを構成します。受け入れ可能な値は以下の通りです。
DEBUGINFOWARNERRORFATAL
配置固有のリソース設定
MongoDBリソース仕様で使用できる他の設定と使用する必要がある他の設定は、作成する MongoDB 配置アイテムによって異なります。
スタンドアロン設定
注意
All of the Standalone Settings also apply to replica set resources.
spec.additionalMongodConfigタイプ: コレクション
MongoDB プロセスを開始するための追加構成オプション。
Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。
Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。
To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.
spec.agent.startupOptionsタイプ: コレクション
MongoDB データベース リソースを起動する MongoDB Agent 設定。
MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。
サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。
Cloud Manager プロジェクトのMongoDB Agent 設定。
OperatorMongoDB Agent を使用して配置したMongoDB Ops Manager バージョンの 設定 。Kubernetes
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-standalone 6 spec: 7 version: "8.0.0" 8 service: my-service 9 10 opsManager: 11 configMapRef: 12 name: my-project 13 credentials: my-credentials 14 type: Standalone 15 16 persistent: true 17 agent: 18 startupOptions: 19 maxLogFiles: "30" 20 dialTimeoutSeconds: "40" 21 ...
spec.podSpec型: オブジェクト
MongoDB CustomResourceDefinition ポッドの仕様を含むオブジェクト。
spec.externalAccessタイプ: コレクション
クラスターを外部接続用に公開するための仕様。 Kubernetes クラスターの外部から MongoDB リソースに接続する方法については、「 Kubernetes の外部から MongoDB Database リソースに接続する 」を参照してください。
spec.externalAccessを追加すると、 Kubernetes Operator はレプリカセット内の各 ポッドの外部サービスを作成します。外部サービスは、クラスター内の各MongoDBデータベースポッドの外部エントリ点を提供します。各外部サービスには、外部サービスを特定のポッドに一致させるセレクターがあります。値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。
フィールド値説明Name<pod-name>-svc-external外部サービスの名前。 この値は変更できません。
TypeLoadBalancer外部 LoadBalancer サービスを作成します。
Port<Port Number>A port for
mongod.publishNotReadyAddresstrueポッドが準備ができていない場合でも DNS レコードが作成されることを指定します。どのデータベースポッドでも
falseに設定しないでください。注意
If you set
spec.externalAccess.externalDomain, the external service adds another port (Port Number + 1) for backups.
spec.externalAccess.externalServiceタイプ: コレクション
Specification for overriding the default values in
spec.externalAccess.spec.externalAccess設定を設定すると、 Kubernetes Operator はデフォルト値を持つ外部ロードバランサーサービスを自動的に作成します。ニーズに応じて、特定の値を上書きしたり、新しい値を追加したりできます。例、NodePort サービスを作成し、ロードバランサーが必要ない場合は、 Kubernetes仕様でオーバーライドを構成する必要があります。externalAccess: externalService: annotations: # cloud-specific annotations for the service spec: type: NodePort # default is LoadBalancer # you can specify other spec overrides if necessary Kubernetes仕様の詳細については、Kubernetesドキュメントの ServiceSpec を参照してください。
spec.externalAccess.externalService.annotationsタイプ: コレクション
配置内のすべてのクラスターにクラウドプロバイダー固有の構成設定を追加できるキーと値のペア。詳しくは、 「 Kubernetesクラウドプロバイダー 」の注釈とドキュメントを参照してください。
注釈 を使用して、 Kubernetes Operator 配置で使用される外部サービスのプレースホルダー値を指定できます。Kubernetes Operator は、これらの値を次の表に記載されている正しい値に自動的に置き換えます。プレースホルダーを使用すると、特定のポッドの各サービスに特定の注釈を提供できます。
値説明{resourceName}Equal to
metadata.name.{namespace}Equal to
metadata.namespace.{podIndex}StateftSet によって割り当てられ、現在の外部サービスが対象とする ポッドのインデックス。
{podName}{resourceName}-{podIndex}に等しい。{statefulSetName}ステートメント。は
{resourceName}と等しいです。{externalServiceName}指定したプレースホルダー値に基づいて、外部サービスの生成された名前。
{resourceName}-{podIndex}-svc-externalに等しい。{mongodProcessDomain}The domain name of the server that is hosting the mongod process. Equal to
spec.externalAccess.externalDomainif specified. Otherwise, equal to the domain used for themongodprocess FQDN.たとえば、プロセス ホスト名
mdb-rs-1.example.comの場合、example.comはドメイン名になります。{mongodProcessFQDN}The
mongodprocess hostname set in the automation configuration.The process hostname depends on your deployment configuration. If you've configured your deployment to use
external domains, the process hostname uses the following format:{resourceName}-{podIndex}.{mongodProcessDomain}以下に例を挙げます。
mdb-rs-1.example.com配置で外部ドメインを使用しない場合、プロセス ホスト名は次の形式を使用します。
{resourceName}-{podIndex}.{resourceName}-{podIndex}-svc.{namespace}.svc.cluster.local以下に例を挙げます。
mdb-rs-1.mdb-rs-1-svc.ns.svc.cluster.local注意
表に指定されている既知のプレースホルダー値のみを使用し、プレースホルダーが空または null 値を使用しないようにする必要があります。 また、単一の MongoDB リソース配置では、複数の Kubernetes クラスター配置に固有のプレースホルダーを使用することもできません。
それ以外の場合、Kubernetes Operator はエラーを返します。 たとえば、次のエラーメッセージが表示される場合があります。
error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}`` 例
次の例えでは、
{resourceName}、{podIndex}、{namespace}プレースホルダーを指定します。apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: mdb-rs namespace: ns spec: replicas: 3 externalAccess: externalService: annotations: external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com Kubernetes Operator は、各プレースホルダーの適切な値に基づいて、外部サービスの注釈を自動的に入力します。 例:
mdb-rs-0-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com mdb-rs-1-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com mdb-rs-2-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.externalAccess.externalService.specタイプ: コレクション
ServiceSpec の構成。詳しくは、
spec.externalAccess.externalServiceを参照してください。
spec.podSpec.persistence.singleタイプ: コレクション
Kubernetes Operator が 1 つの永続ボリューム要求を作成し、データ、ジャーナル、およびログの 3 つのすべてのディレクトリを同じ永続ボリュームにマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.multipleコレクションを設定できますが、両方は設定できません。
スカラーデータ型説明labelSelectorstring
storagestring
永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 16Gi です。
For example, if standalone deployment in requires 60 gigabytes of storage space, set this value to
60Gi.storageClassstring
永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.podSpec.persistence.multiple.dataタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、データ用ディレクトリを独自の永続ボリュームにマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.podSpec.persistence.multiple.journalタイプ: コレクション
Kubernetes Operator が 永続ボリューム要求 を作成し、ジャーナル用のディレクトリを独自の 永続ボリューム にマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.podSpec.persistence.multiple.logsタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、独自の永続ボリュームにログ用のディレクトリをマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.podSpec.podTemplateタイプ: コレクション
MongoDB Controls for Kubernetes Operator がMongoDBデータベースリソース用に作成するKubernetesポッドのテンプレート。
テンプレート値は、
spec.podSpecで指定された値よりも優先されます。注意
Kubernetes 演算子は、
spec.podSpec.podTemplateで指定したフィールドを検証しません。
spec.podSpec.podTemplate.metadataタイプ: コレクション
MongoDB Controls for Kubernetes Operator がMongoDBデータベースリソース用に作成するKubernetesポッドのメタデータ。
spec.podSpec.podTemplate.metadataに追加できるフィールドを確認するには、Kubernetes のドキュメント を参照してください。
spec.podSpec.podTemplate.specタイプ: コレクション
MongoDB Controls for Kubernetes Operator がMongoDBデータベースリソース用に作成するKubernetesポッドの仕様。
spec.podSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1 Core APIを参照してください。注意
spec.podSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の MongoDB database リソース コンテナに追加されます。この設定を使用して、各ポッドの CPU とRAM の割り当てを指定します。例については、Githubのサンプルを参照してください。
spec.podSpec.podTemplate.spec.affinity.nodeAffinity型: 構造体
レプリカセット用のポッドを特定の範囲のノードに配置するためのKubernetesルール。
読み取りおよび書込みのパフォーマンスを最適化するには、ノードアフィニティ ルールを使用して、特定のノードで実行されるように Pod を制限します。または、特定のノードでの実行を優先します。
spec.podSpec.podTemplate.spec.affinity.podAffinity型: 構造体
複数の
MongoDBリソースポッドが他のポッドと同じロケーションに存在する必要があるかどうかを決定するためのKubernetesルール。ユースケースの詳細については、 Kubernetesドキュメントのアフィニティと非アフィニティを参照してください。
spec.podSpec.podTemplate.spec.affinity.podAntiAffinity型: 構造体
Default: kubernetes.io/hostname
MongoDBリソースをホストしているポッドを異なる場所に分散するルールを設定します。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。デフォルトでは 、 Kubernetes Operator は異なるノードにポッドを分散しようとします。
spec.podSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey型: 構造体
Default: kubernetes.io/hostname
このキーは、ノードが属するトポロジー ドメイン を決定するために使用される ラベル を定義します。
レプリカセット設定
注意
All of the Standalone Settings also apply to replica set resources.
レプリカセットのリソース タイプには次の設定が適用されます。
spec.backupタイプ: コレクション
The collection container for
spec.backup.mode, which enables continuous backups for MongoDB resources in Kubernetes Operator.
spec.backup.assignmentLabelsタイプ: 配列
特定のプロジェクトまたはグループにバックアップデーモン、oplog 保存、ブロック保存、S3 読み取り、およびファイルシステム保存を割り当てるためのカンマ区切りのラベルのリスト。割り当てラベルを使用して、特定のバックアップ保存 (する)が特定のプロジェクトと関連付けられていることを識別します。
Kubernetes Operator を使用して割り当てラベルを設定すると、割り当てラベルのKubernetes構成ファイルで設定した値が、 MongoDB Ops Manager UI で定義された値を上書きします。 Kubernetes Operator を使用して設定しない割り当てラベルは、 MongoDB Ops Manager UI で設定された値を引き続き使用します。
注意
If you set this parameter, the API key linked with the value of
spec.credentialsmust have aGlobal Ownerrole.
spec.backup.mode型: string
MongoDB リソースの継続的なバックアップを有効にします。 指定できる値は、
enabled、disabled、terminatedです。注意
The
spec.backup.modesetting relies on Backup that is enabled in the Ops Manager and requires thatspec.backup.enabledvalue in the Ops Manager resource specification is set totrue.After you enable continuous backups for your MongoDB resource with
spec.backup.mode, you can check the backup status.
spec.backup.encryption.kmip型: オブジェクト
KMIPバックアップ暗号化の構成設定を含むオブジェクトです。 詳細については、「 MongoDB Ops Managerの KMIP バックアップ暗号化の構成 」を参照してください。
spec.backup.snapshotScheduleタイプ: コレクション
Kubernetes Operator の MongoDB リソースの継続的なバックアップのスナップショット スケジュール設定のコレクション コンテナ。
spec.backup.snapshotSchedule.dailySnapshotRetentionDaysタイプ: 数値
日次スナップショットを保持する日数。
1から365までの値を設定できます。 値を0に設定すると、このルールが無効になります。
spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeksタイプ: 数値
Number of weeks to keep weekly snapshots.
1から52までの値を設定できます。 値を0に設定すると、このルールが無効になります。
spec.backup.snapshotSchedule.monthlySnapshotRetentionMonthsタイプ: 数値
月次スナップショットを保持する月数。
1から36までの値を設定できます。 値を0に設定すると、このルールが無効になります。
spec.backup.snapshotSchedule.referenceHourOfDayタイプ: 数値
24 時間表示を使用してスナップショットを予定する UTC 時刻。両端を含む
0から23までの値を設定できます。
spec.backup.snapshotSchedule.referenceMinuteOfHourタイプ: 数値
UTC 時間の分でスナップショットを予定します。値は、両端を含む
0から59までに設定できます。
spec.backup.snapshotSchedule.fullIncrementalDayOfWeek型: string
MongoDB Ops Managerが完全なスナップショットを取得する曜日。 この設定により、最新の完全なバックアップが保証されます。 MongoDB Ops Manager はデフォルト値を
SUNDAYに設定します。
spec.clusterName型: string
デフォルト: cluster.local
Kubernetes 演算子を配置する Kubernetes クラスターのドメイン名。Kubernetes が StatefulSet を作成すると、Kubernetes は各 Pod に FQDN を割り当てます。Cloud Manager または Ops Manager を更新するには、Kubernetes 演算子は、提供されたクラスター名を使用して、各 FQDN をPod ごとに計算します。Kubernetes は、これらのホスト名をクエリするための API を提供していません。
警告
spec.clusterDomainKubernetesクラスターにデフォルトの 以外のデフォルトのドメインがある場合は、cluster.localを設定する必要があります。デフォルトを使用せず、 オプションも設定しない場合、spec.clusterDomainKubernetes演算子は期待どおりに機能しない可能性があります。
spec.connectivity.replicaSetHorizonsタイプ: コレクション
クライアント アプリケーションと MongoDB エージェントに対して異なるDNS設定を提供できます。 Kubernetes Operator は、レプリカセット ノードに スプリット ホライゾンDNSを使用します。 この機能により、Kubernetes クラスター内と Kubernetes 外部からの両方で通信が可能になります。
ホストごとに複数の外部マッピングを追加できます。
スプリットホライゾンの要件:
この配列内の各値が一意であることを確認してください。
Make sure that the number of entries in this array matches the value given in
spec.members.Provide a value for the
spec.security.certsSecretPrefixsetting to enable TLS. This method to use split horizons requires the Server Name Indication extension of the TLS protocol.
例
レプリカセットのノードは、レプリケーション構成で構成されたホスト名を使用して互いに通信します(
members[n].host)。example-websiteホライゾンは、そのホライゾンを介して接続するクライアントに対して、代替アドレスを提供します。記載されているホライゾンの名前は、この例では任意です。 ホライゾンには任意の名前を付けることができますが、そのホライゾンの名前が、そのホライゾンの一部であるすべてのホスト名と同じであることを確認してください。
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "8.0.0" 9 type: ReplicaSet 10 opsManager: 11 configMapRef: 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 persistent: true 15 security: 16 tls: 17 enabled: true 18 connectivity: 19 replicaSetHorizons: 20 - "example-website": "web1.example.com:30907" 21 - "example-website": "web2.example.com:32350" 22 - "example-website": "web3.example.com:31185" 23 ...
spec.externalAccess.externalDomain型: string
レプリカセットの配置を外部で公開するために使用される外部ドメイン。
デフォルトで、各レプリカセットは Kubernetes Pod の FQDN (
*.svc.cluster.local) をデフォルトのホスト名として使用します。ただし、この設定に外部ドメインを追加すると、レプリカセットは代わりに、指定されたドメインのサブドメインであるホスト名を使用します。このホスト名は次の形式を使用します。<replica-set-name>-<pod-idx>.<externalDomain>以下に例を挙げます。
replica-set-1.example.comAfter you deploy the replica set with this setting, the Kubernetes Operator uses the hostname with the external domain to override the
processes[n].hostnamefield in the Ops Manager automation configuration. Then, the MongoDB Agent uses this hostname to connect tomongod.To specify other hostnames for connecting to the replica set, you can use the
spec.connectivity.replicaSetHorizonssetting. However, the following connections still use the hostname with the external domain:The MongoDB Agent to connect to
mongod.
WARNING: Specifying this field changes how Ops Manager registers
mongodprocesses. You can't change the value of this field or anyprocesses[n].hostnamefields in the Ops Manager automation configuration for a running replica set deployment.
spec.memberConfigタイプ: コレクション
MongoDBリソースから配置された各 MongoDB レプリカセット ノードの仕様。配列内の要素の順序は、レプリカセット内のノードの順序を反映する必要があります。 たとえば、 配列の最初の要素はインデックス
0の ポッドに影響し、2 番目の要素はインデックス1に影響するなどします。例
3 つのノードからなるレプリカセットの次の仕様例を検討してみましょう。
spec: memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - votes: 0 priority: "0.5" tags: tag2: "value2" environment: "prod"
spec.memberConfig.priority型: string
Number that indicates the relative likelihood of a MongoDB replica set member to become the primary.
レプリカセット メンバーがプライマリになる相対的な可能性を高めるには、
priorityの値を高く指定します。レプリカセット メンバーがプライマリになる相対的な可能性を減らすには、
priorityの値を低く指定します。
たとえば、
memberConfig.priorityが1.5のメンバーは、memberConfig.priorityが0.5のメンバーよりも多く、プライマリになる可能性が高くなります。かつ
memberConfig.priorityが0のノードはプライマリになる資格がありません。 詳しくは、「メンバーの優先順位 」を参照してください。
spec.memberConfig.tagsタイプ: map
MongoDB レプリカセットの特定のノードに読み取りおよび書込み (write) 操作を指示するためのレプリカセット タグのマップ。
spec.memberConfig.votesタイプ: 数値
Determines whether a MongoDB replica set member can vote in an election. Set to
1to allow the member to vote. Set to0to exclude the member from an election.
次の設定はレプリカセットのリソースタイプにのみ適用されます。
spec.backup.autoTerminateOnDeletionタイプ: ブール値
Flag that controls whether the Kubernetes Operator stops and terminates the backup when you delete a MongoDB resource. If omitted, the default value is
false. Setting this flag totrueis useful when you want to delete the MongoDB custom resource while thespec.backup.modesetting is set toenabled.
シャーディングされたクラスターの設定
注意
All of the Replica Set Settings also apply to sharded cluster resources unless otherwise specified.
次の設定は、シャーディングされたクラスターのリソース タイプにのみ適用されます。
spec.backup.snapshotSchedule.clusterCheckpointIntervalMinタイプ: 数値
連続するクラスター チェックポイント間の分数。 この設定は、 MongoDBを機能の互換性バージョン7.0またはそれ以前のバージョンで実行するシャーディングされたクラスターにのみ適用されます。 この数値により、シャーディングされたクラスターのポイントインタイム復元の粒度が決まります。
15、30、または60の値を設定できます。
spec.configServerCountタイプ: 整数
Required. Number of members in the config server.
spec.configSrv.additionalMongodConfigタイプ: コレクション
Additional configuration options with which you want to start each config server member.
Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。
Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。
To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.
spec.configSrv.agentタイプ: コレクション
MongoDB Agent configuration settings for each config server member.
spec.configSrv.agent.startupOptionsタイプ: コレクション
MongoDB Agent settings with which you want to start each config server member.
MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。
サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。
Cloud Manager プロジェクトのMongoDB Agent 設定。
OperatorMongoDB Agent を使用して配置したMongoDB Ops Manager バージョンの 設定 。Kubernetes
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.configSrvPodSpec型: オブジェクト
MongoDB CustomResourceDefinitionコンフィギュレーションサーバーポッドの仕様を含むオブジェクト。
spec.configSrvPodSpec.persistence.singleタイプ: コレクション
Kubernetes Operator が 1 つの永続ボリューム要求を作成し、データ、ジャーナル、およびログの 3 つのすべてのディレクトリを同じ永続ボリュームにマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.multipleコレクションを設定できますが、両方は設定できません。
スカラーデータ型説明labelSelectorstring
storagestring
永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 5Gi です。
For example, if each config server member in requires 60 gigabytes of storage space, set this value to
60Gi.storageClassstring
永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.configSrvPodSpec.persistence.multiple.dataタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、データ用ディレクトリを独自の永続ボリュームにマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
各コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.configSrvPodSpec.persistence.multiple.journalタイプ: コレクション
Kubernetes Operator が 永続ボリューム要求 を作成し、ジャーナル用のディレクトリを独自の 永続ボリューム にマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
各コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.configSrvPodSpec.persistence.multiple.logsタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、独自の永続ボリュームにログ用のディレクトリをマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
storageClassstring
各コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.configSrvPodSpec.podTemplateタイプ: コレクション
MongoDB Controls for Kubernetes Operator が各コンフィギュレーションサーバーのノードに対して作成するKubernetesポッドのテンプレート。
テンプレート値は、
spec.configSrvPodSpecで指定された値よりも優先されます。注意
Kubernetes 演算子は、
spec.configSrvPodSpec.podTemplateで指定したフィールドを検証しません。
spec.configSrvPodSpec.podTemplate.metadataタイプ: コレクション
Metadata for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each config server member.
spec.configSrvPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、Kubernetes のドキュメント を参照してください。
spec.configSrvPodSpec.podTemplate.specタイプ: コレクション
MongoDB Controls for Kubernetes Operator が各コンフィギュレーションサーバーノードに対して作成するKubernetesポッドの仕様。
spec.configSrvPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1 Core APIを参照してください。注意
spec.configSrvPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の各コンフィギュレーションサーバー ノードコンテナに追加されます。この設定を使用して、各ポッドの CPU とRAM の割り当てを指定します。例については、Githubのサンプルを参照してください。
spec.configSrvPodSpec.podTemplate.spec.affinity.podAffinityタイプ: コレクション
複数の
MongoDBリソースポッドが他のポッドと同じロケーションに存在する必要があるかどうかを決定するためのKubernetesルール。ユースケースの詳細については、 Kubernetesドキュメントのアフィニティと非アフィニティを参照してください。
spec.configSrvPodSpec.podTemplate.spec.affinity.nodeAffinityタイプ: コレクション
レプリカセット用のポッドを特定の範囲のノードに配置するためのKubernetesルール。
読み取りおよび書込みのパフォーマンスを最適化するには、ノードアフィニティ ルールを使用して、特定のノードで実行されるように Pod を制限します。または、特定のノードでの実行を優先します。
spec.configSrvPodSpec.podTemplate.spec.affinity.podAntiAffinity型: string
Default: kubernetes.io/hostname
MongoDBリソースをホストしているポッドを異なる場所に分散するルールを設定します。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。デフォルトでは 、 Kubernetes Operator は異なるノードにポッドを分散しようとします。
spec.configSrvPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey型: string
Default: kubernetes.io/hostname
このキーは、ノードが属するトポロジー ドメイン を決定するために使用される ラベル を定義します。
spec.mongodsPerShardCountタイプ: 整数
Required. Number of members per shard.
spec.mongosCountタイプ: 整数
Required. Number of
mongosinstances in the sharded cluster.
spec.mongos.additionalMongodConfigタイプ: コレクション
Additional configuration options with which you want to start each mongos instance.
Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。
Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。
To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.
spec.mongos.agentタイプ: コレクション
MongoDB Agent configuration settings for each
mongosinstance.
spec.mongos.agent.startupOptionsタイプ: コレクション
MongoDB Agent settings with which you want to start each
mongosinstance.MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。
サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。
Cloud Manager プロジェクトのMongoDB Agent 設定。
OperatorMongoDB Agent を使用して配置したMongoDB Ops Manager バージョンの 設定 。Kubernetes
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.mongosPodSpec型: オブジェクト
MongoDB CustomResourceDefinition mongos ポッドの仕様を含むオブジェクト。
spec.mongosPodSpec.podTemplateタイプ: コレクション
MongoDB Controls for Kubernetes Operator が各
mongosインスタンスに対して作成するKubernetesポッドのテンプレート。テンプレート値は、
spec.mongosPodSpecで指定された値よりも優先されます。注意
Kubernetes 演算子は、
spec.mongosPodSpec.podTemplateで指定したフィールドを検証しません。
spec.mongosPodSpec.podTemplate.metadataタイプ: コレクション
Metadata for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each
mongosinstance.spec.mongosPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、Kubernetes のドキュメント を参照してください。
spec.mongosPodSpec.podTemplate.specタイプ: コレクション
Specifications of the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each
mongosinstance.spec.mongosPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1 Core APIを参照してください。注意
When you add containers to
spec.mongosPodSpec.podTemplate.spec.containers, the Kubernetes Operator adds them to the Kubernetes pod. These containers are appended to eachmongosinstance containers in the pod.この設定を使用して、各ポッドの CPU とRAM の割り当てを指定します。例については、Githubのサンプルを参照してください。
spec.mongosPodSpec.podTemplate.spec.affinity.podAffinityタイプ: コレクション
任意。複数の
MongoDBリソースポッドが他のポッドと同じロケーションに存在する必要があるかどうかを決定するためのKubernetesルール。
spec.mongosPodSpec.podTemplate.spec.affinity.nodeAffinityタイプ: コレクション
レプリカセット用のポッドを特定の範囲のノードに配置するためのKubernetesルール。
読み取りおよび書込みのパフォーマンスを最適化するには、ノードアフィニティ ルールを使用して、特定のノードで実行されるように Pod を制限します。または、特定のノードでの実行を優先します。
spec.mongosPodSpec.podTemplate.spec.affinity.podAntiAffinity型: string
Default: kubernetes.io/hostname
MongoDBリソースをホストしているポッドを異なる場所に分散するルールを設定します。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。デフォルトでは 、 Kubernetes Operator は異なるノードにポッドを分散しようとします。
spec.mongosPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey型: string
Default: kubernetes.io/hostname
このキーは、ノードが属するトポロジー ドメイン を決定するために使用される ラベル を定義します。
spec.shardCountタイプ: 整数
Required. Number of shards in the sharded cluster.
spec.shard.additionalMongodConfigタイプ: コレクション
各シャーディングされた クラスター のシャード ノードを起動するための追加 構成オプション 。
Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。
Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。
To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.
spec.shard.agentタイプ: コレクション
各シャーディングされたクラスターのシャード ノードの MongoDB Agent の構成設定。
spec.shard.agent.startupOptionsタイプ: コレクション
MongoDB Agent settings with which you want to start each sharded cluster shard member.
MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。
サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。
Cloud Manager プロジェクトのMongoDB Agent 設定。
OperatorMongoDB Agent を使用して配置したMongoDB Ops Manager バージョンの 設定 。Kubernetes
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.shardPodSpec型: オブジェクト
MongoDB CustomResourceDefinition シャード ポッドの仕様を含むオブジェクト。
spec.shardPodSpec.persistence.multiple.dataタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、データ用ディレクトリを独自の永続ボリュームにマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 16Gi です。
たとえば、この
MongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。storageClassstring
各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.shardPodSpec.persistence.multiple.journalタイプ: コレクション
Kubernetes Operator が 永続ボリューム要求 を作成し、ジャーナル用のディレクトリを独自の 永続ボリューム にマウントするようにします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 1Gi です。
たとえば、この
MongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。storageClassstring
各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.shardPodSpec.persistence.multiple.logsタイプ: コレクション
Kubernetes Operator が永続ボリューム要求を作成し、独自の永続ボリュームにログ用のディレクトリをマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.singleコレクションを設定できますが、両方を設定することはできません。
スカラーデータ型説明labelSelectorstring
storagestring
Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 3Gi です。
たとえば、この
MongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。storageClassstring
各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
spec.shardPodSpec.podTemplateタイプ: コレクション
MongoDB Controls for Kubernetes Operator がシャーディングされたクラスターのシャード ノードごとに作成するKubernetesポッドのテンプレート。
テンプレート値は、
spec.shardPodSpecで指定された値よりも優先されます。注意
Kubernetes 演算子は、
spec.shardPodSpec.podTemplateで指定したフィールドを検証しません。
spec.shardPodSpec.podTemplate.metadataタイプ: コレクション
MongoDB Controls for Kubernetes Operator が各シャーディングされたクラスターのシャード ノードに対して作成するKubernetesポッドのメタデータ。
spec.shardPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、Kubernetes のドキュメント を参照してください。
spec.shardPodSpec.podTemplate.specタイプ: コレクション
MongoDB Controls for Kubernetes Operator が各シャーディングされたクラスターのシャード ノードに対して作成するKubernetesポッドの仕様。
spec.shardPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1 Core APIを参照してください。注意
When you add containers to
spec.shardPodSpec.podTemplate.spec.containers, the Kubernetes Operator adds them to the Kubernetes pod. These containers are appended to each sharded cluster shard member containers in the pod.この設定を使用して、各ポッドの CPU とRAM の割り当てを指定します。例については、Githubのサンプルを参照してください。
spec.shardPodSpec.podTemplate.spec.affinity.podAffinity型: string
複数の
MongoDBリソースポッドが他のポッドと同じロケーションに存在する必要があるかどうかを決定するためのKubernetesルール。ユースケースの詳細については、 Kubernetesドキュメントのアフィニティと非アフィニティを参照してください。
spec.shardPodSpec.podTemplate.spec.affinity.nodeAffinity型: string
レプリカセット用のポッドを特定の範囲のノードに配置するためのKubernetesルール。
読み取りおよび書込みのパフォーマンスを最適化するには、ノードアフィニティ ルールを使用して、特定のノードで実行されるように Pod を制限します。または、特定のノードでの実行を優先します。
spec.shardPodSpec.podTemplate.spec.affinity.podAntiAffinity型: string
Default: kubernetes.io/hostname
MongoDBリソースをホストしているポッドを異なる場所に分散するルールを設定します。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。デフォルトでは 、 Kubernetes Operator は異なるノードにポッドを分散しようとします。
spec.shardPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey型: string
Default: kubernetes.io/hostname
このキーは、ノードが属するトポロジー ドメイン を決定するために使用される ラベル を定義します。
spec.shardSpecificPodSpecタイプ: 配列
シャードごとのステートフルセットのオーバーライドを含むリスト。
spec.shardSpecificPodSpec.podTemplateタイプ: コレクション
MongoDB Controls for Kubernetes Operator が特定のシャードに対して作成するKubernetesポッドのテンプレート。
テンプレート値は、
spec.shardSpecificPodSpecで指定された値よりも優先されます。注意
Kubernetes 演算子は、
spec.shardSpecificPodSpec.podTemplateで指定したフィールドを検証しません。
spec.shardSpecificPodSpec.podTemplate.metadataタイプ: コレクション
MongoDB Controls for Kubernetes Operator が特定のシャードに対して作成するKubernetesポッドのメタデータ。
spec.shardSpecificPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、Kubernetes のドキュメント を参照してください。
spec.shardSpecificPodSpec.podTemplate.specタイプ: コレクション
MongoDB Controls for Kubernetes Operator が特定のシャードに対して作成するKubernetesポッドの仕様。
spec.shardSpecificPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1 Core APIを参照してください。注意
spec.shardSpecificPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の特定のシャード コンテナに追加されます。この設定を使用して、各ポッドの CPU とRAM の割り当てを指定します。例については、Githubのサンプルを参照してください。
spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAffinity型: string
複数の
MongoDBリソースポッドが他のポッドと同じロケーションに存在する必要があるかどうかを決定するためのKubernetesルール。ユースケースの詳細については、 Kubernetesドキュメントのアフィニティと非アフィニティを参照してください。
spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAntiAffinity型: string
Default: kubernetes.io/hostname
MongoDBリソースをホストしているポッドを異なる場所に分散するルールを設定します。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。デフォルトでは 、 Kubernetes Operator は異なるノードにポッドを分散しようとします。
spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey型: string
Default: kubernetes.io/hostname
このキーは、ノードが属するトポロジー ドメイン を決定するために使用される ラベル を定義します。
spec.topology型: string
任意
デフォルト:
SingleClusterシャーディングされたシャーディングされたクラスターのトポロジーを定義します。 既存の配置では変更できません。
MultiClusterに設定されている場合:すべてのシャーディングされたクラスターコンポーネントには
clusterSpecListが定義されている必要があります。spec.mongos.clusterSpecListspec.configSrv.clusterSpecListspec.shard.clusterSpecList
次のフィールドは無視され、
spec.<section>.clusterSpecListオブジェクト内の各クラスターに同等の値が渡されます。spec.mongodsPerShardCountは で定義されていますspec.shard.clusterSpecList.membersspec.mongosCountは で定義されていますspec.mongos.clusterSpecList.membersspec.configServerCountは で定義されていますspec.configSrv.clusterSpecList.membersspec.shardOverrides.memberConfigは で定義されていますspec.shardOverrides.clusterSpecList.memberConfigspec.shardOverrides.membersは で定義されていますspec.shardOverrides.clusterSpecList.membersspec.shardOverrides.statefulSetは で定義されていますspec.shardOverrides.clusterSpecList.statefulSet
例:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: sc spec: shardCount: 3 # we don't specify mongodsPerShardCount, mongosCount and configServerCount as they don't make sense for multi-cluster topology: MultiCluster type: ShardedCluster version: 7.0.12 cloudManager: configMapRef: name: my-project credentials: my-credentials persistent: true shard: clusterSpecList: - clusterName: member-cluster-0 members: 2 # each shard will have 2 members in cluster 0, unless overriden - clusterName: member-cluster-1 members: 2 - clusterName: member-cluster-2 members: 1 shardOverrides: - shardNames: [sc-2] # this override will apply to the third shard (here, shards are indexed from 0 to 2 as we have 3 shards) clusterSpecList: - clusterName: member-cluster-0 # all other fields are optional, if not provided the fields from matching member cluster from shard.clusterSpecList will be taken by default members: 3 - clusterName: member-cluster-1 # we don't deploy this shard to member-cluster-1 # Note that it is also possible to make it explicit with members: 0 # we don't provide entry for clusterName: member-cluster-1, so it won't be deployed there - clusterName: member-cluster-2 members: 2 configSrv: clusterSpecList: - clusterName: member-cluster-0 members: 2 # config server will have 2 members in this cluster - clusterName: member-cluster-1 members: 1 - clusterName: member-cluster-2 members: 2 mongos: clusterSpecList: - clusterName: member-cluster-0 members: 2 # router will have 2 members in this cluster - clusterName: member-cluster-1 members: 1 次のフィールドは、
topology=MultiClusterが実行される配置にのみ関連します。spec.configSrv.clusterSpecList注意
このフィールドは、マルチクラスターのシャーディングされたクラスターの配置でのみ使用できます。
タイプ: オブジェクトの配列
必須
topology=MultiClusterの場合)次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。
clusterName型: string
MongoDB Controls for Kubernetes Operator が StateftSet をスケジュールするクラスターの名前。
externalAccessタイプ: コレクション
マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。
これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。
spec.externalAccessを追加すると、 Kubernetes Operator はレプリカセット内の各 ポッドの外部サービスを作成します。外部サービスは、クラスター内の各MongoDBデータベースポッドの外部エントリ点を提供します。各外部サービスには、外部サービスを特定のポッドに一致させるセレクターがあります。値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。
フィールド値説明Name<pod-name>-svc-external外部サービスの名前。 この値は変更できません。
TypeLoadBalancer外部 LoadBalancer サービスを作成します。
Port<Port Number>A port for
mongod.publishNotReadyAddresstrueポッドが準備ができていない場合でも DNS レコードが作成されることを指定します。どのデータベースポッドでも
falseに設定しないでください。注意
spec.clusterSpecList.externalAccess.externalDomainを設定すると、外部サービスはバックアップ用の別のポート(
Port Number + 1)を追加します。
membersタイプ: 数値
MongoDB レプリカセット内のノードの数。
memberConfigタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内の各MongoDBシャードとそのノードの仕様。
シャードのオブジェクト内の要素の順序は、レプリカセット内のノードの順序を反映する必要があります。 例、最初の要素はインデックス
0の ポッドに影響し、2 番目の要素はインデックス1に影響するなど、 に影響します。例
3 つのレプリカ セットを含むマルチ Kubernetes クラスター MongoDB 配置の次の例の仕様を検討してみましょう。
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
podSpec.persistenceタイプ: コレクション
Only available in
clusterSpecItemobjects passed tospec.configSrv.clusterSpecListandspec.shard.clusterSpecList. Overrides the existing persistence configuration for a given cluster.
statefulSetタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、spec.statefulSet.spec を参照してください。
この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。
spec.duplicateServiceObjects注意
このフィールドは、マルチクラスターのシャーディングされたクラスターの配置でのみ使用できます。
タイプ: ブール値
任意
デフォルト:
trueトポロジーが
MultiClusterでない場合は無視されます。 すべてのシャーディングされたクラスターコンポーネントのサービスに適用されます(mongos、configSrv、shards。trueに設定されている場合:- Kubernetes 演算子は、各ノードクラスター内のすべてのノードクラスターからすべての
Pod Servicesを作成します。 falseに設定されている場合:- Kubernetes 演算子は、各ノードクラスターでホストされるPodの
Pod Servicesのみを作成します。
spec.mongos.clusterSpecList注意
このフィールドは、マルチクラスターのシャーディングされたクラスターの配置でのみ使用できます。
タイプ: オブジェクトの配列
必須
topology=MultiClusterの場合)次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。
clusterName型: string
MongoDB Controls for Kubernetes Operator が StateftSet をスケジュールするクラスターの名前。
externalAccessタイプ: コレクション
マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。
これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。
spec.externalAccessを追加すると、 Kubernetes Operator はレプリカセット内の各 ポッドの外部サービスを作成します。外部サービスは、クラスター内の各MongoDBデータベースポッドの外部エントリ点を提供します。各外部サービスには、外部サービスを特定のポッドに一致させるセレクターがあります。値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。
フィールド値説明Name<pod-name>-svc-external外部サービスの名前。 この値は変更できません。
TypeLoadBalancer外部 LoadBalancer サービスを作成します。
Port<Port Number>A port for
mongod.publishNotReadyAddresstrueポッドが準備ができていない場合でも DNS レコードが作成されることを指定します。どのデータベースポッドでも
falseに設定しないでください。注意
spec.clusterSpecList.externalAccess.externalDomainを設定すると、外部サービスはバックアップ用の別のポート(
Port Number + 1)を追加します。
membersタイプ: 数値
MongoDB レプリカセット内のノードの数。
memberConfigタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内の各MongoDBシャードとそのノードの仕様。
シャードのオブジェクト内の要素の順序は、レプリカセット内のノードの順序を反映する必要があります。 例、最初の要素はインデックス
0の ポッドに影響し、2 番目の要素はインデックス1に影響するなど、 に影響します。例
3 つのレプリカ セットを含むマルチ Kubernetes クラスター MongoDB 配置の次の例の仕様を検討してみましょう。
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
statefulSetタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、spec.statefulSet.spec を参照してください。
この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。
spec.shard.clusterSpecList注意
このフィールドは、マルチクラスターのシャーディングされたクラスターの配置でのみ使用できます。
タイプ: オブジェクトの配列
必須
topology=MultiClusterの場合)次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。
clusterName型: string
MongoDB Controls for Kubernetes Operator が StateftSet をスケジュールするクラスターの名前。
externalAccessタイプ: コレクション
マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。
これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。
spec.externalAccessを追加すると、 Kubernetes Operator はレプリカセット内の各 ポッドの外部サービスを作成します。外部サービスは、クラスター内の各MongoDBデータベースポッドの外部エントリ点を提供します。各外部サービスには、外部サービスを特定のポッドに一致させるセレクターがあります。値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。
フィールド値説明Name<pod-name>-svc-external外部サービスの名前。 この値は変更できません。
TypeLoadBalancer外部 LoadBalancer サービスを作成します。
Port<Port Number>A port for
mongod.publishNotReadyAddresstrueポッドが準備ができていない場合でも DNS レコードが作成されることを指定します。どのデータベースポッドでも
falseに設定しないでください。注意
spec.clusterSpecList.externalAccess.externalDomainを設定すると、外部サービスはバックアップ用の別のポート(
Port Number + 1)を追加します。
membersタイプ: 数値
MongoDB レプリカセット内のノードの数。
memberConfigタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内の各MongoDBシャードとそのノードの仕様。
シャードのオブジェクト内の要素の順序は、レプリカセット内のノードの順序を反映する必要があります。 例、最初の要素はインデックス
0の ポッドに影響し、2 番目の要素はインデックス1に影響するなど、 に影響します。例
3 つのレプリカ セットを含むマルチ Kubernetes クラスター MongoDB 配置の次の例の仕様を検討してみましょう。
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
podSpec.persistenceタイプ: コレクション
Only available in
clusterSpecItemobjects passed tospec.configSrv.clusterSpecListandspec.shard.clusterSpecList. Overrides the existing persistence configuration for a given cluster.
statefulSetタイプ: コレクション
マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、spec.statefulSet.spec を参照してください。
この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。
spec.shardOverridesタイプ: オブジェクトの配列
任意
シャードごとのオーバーライドを含むリスト。 各オブジェクトには、次のフィールドが含まれています。
shardNames必須
このオーバーライドが適用されるシャードの名前。
podSpec.Persistence任意
Kubernetes Operator が永続ボリュームを作成してシャードにバインドする方法を定義します。
topology=MultiClusterの場合、すべてのノード クラスターの永続化設定を設定します。spec.shardOverrides.clusterSpecList.persistenceでは、特定のノード クラスターの永続設定を定義できます。additionalMongodConfig任意
spec.shard.additionalMongodConfigのシャード固有の上書き。agent任意
spec.shard.agentのシャード固有の上書き。statefulSet任意
spec.shardPodSpec.podTemplateとspec.shard.clusterSpecList.statefulSetのシャード固有の上書き。members任意
topology=SingleClusterの場合にのみ利用可能です。spec.mongodsPerShardCountのオーバーライド用のシャード固有オーバーライド。memberConfig任意
topology=SingleClusterの場合にのみ利用可能です。spec.shard.memberConfigのシャード固有の上書き。
spec.shardPodSpec.persistence.singleタイプ: コレクション
Kubernetes Operator が 1 つの永続ボリューム要求を作成し、データ、ジャーナル、およびログの 3 つのすべてのディレクトリを同じ永続ボリュームにマウントします。
注意
You must set the values in this collection if
spec.persistent: true.このコレクションまたは
persistence.multipleコレクションを設定できますが、両方は設定できません。
スカラーデータ型説明labelSelectorstring
storagestring
永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。
デフォルト値は 16Gi です。
For example, if each sharded cluster shard member in requires 60 gigabytes of storage space, set this value to
60Gi.storageClassstring
永続的なボリューム要求 で指定されるストレージのタイプ。このオブジェクト仕様で使用する前に、このストレージタイプを StorageClassオブジェクトとして作成できます。
StorageClass
reclaimPolicyを 保持 するように設定します。これにより、永続的なボリューム要求が削除されてもデータが保持されます。
Prometheus 設定
Prometheusは、レプリカセットまたはシャーディングされたクラスターで使用できます。スタンドアロンリソースでは、Prometheusモニタリングはサポートされていません。Prometheusでシングルノード配置をモニターするには、代わりにシングルノードのレプリカセットを配置します。詳細については、「Prometheusで使用するリソースを配置する」を参照してください。例を表示するには、「Prometheusを使用したMongoDBリソース」を参照してください。
MongoDB リソースで Prometheus を使用する場合、次の設定が適用されます。
spec.prometheus.metricsPath型: string
任意
デフォルト:
"/metrics"メトリクス エンドポイントへのパスを示す、人間が判読可能なstring 。 この設定を指定しない場合、デフォルトが適用されます。
spec.prometheus.passwordSecretRef型: オブジェクト
条件付き
基本的なHTTP認証のシークレットの詳細を含むオブジェクト。MongoDBリソースで Prometheus を使用する場合は、この設定を指定する必要があります。
spec.prometheus.passwordSecretRef.key型: string
任意
デフォルト:
"password"基本的なHTTP認証のパスワードを保存する シークレット 内のキーを識別する、人間が判読可能な文字列。この設定を指定しない場合、デフォルトが適用されます。
spec.prometheus.passwordSecretRef.name型: string
条件付き
基本的なHTTP認証のパスワードを含むシークレットを識別する、人間が判読可能なラベル。MongoDBリソースで Prometheus を使用する場合は、この設定を指定する必要があります。
spec.prometheus.tlseSecretKeyRef型: オブジェクト
任意
シークレット の詳細を含むオブジェクト TLS 認証用。
spec.prometheus.tlseSecretKeyRef.key型: string
任意
デフォルト:
"password"シークレットstring 内のキーを識別する、人間が判読可能な は TLS 認証用のパスワードを保存します。この設定を指定しない場合、デフォルトが適用されます。
spec.prometheus.tlseSecretKeyRef.name型: string
条件付き
秘密 を識別する、人間が判読可能なラベル TLS 認証用のパスワードを含むMongoDB リソースで Prometheus を使用し、 TLS認証を使用する場合は、この設定を指定する必要があります。
セキュリティ設定
次のセキュリティ設定は、レプリカセットとシャーディングされたクラスターのリソース タイプにのみ適用されます。
spec.security.tls.ca型: string
リソース用の CA を保存する ConfigMap
MongoDBの名前を指定します。重要
カスタム CA を使用して
MongoDBリソースの TLS 証明書に署名する場合は、このパラメータを指定する必要があります。Kubernetes Operator では、ConfigMap で
MongoDBリソース証明書ca-pemに名前を付ける必要があります。
spec.security.certsSecretPrefix型: string
Kubernetes シークレット のプレフィックスへのテキスト レプリカセットの または シャーディングされたクラスターの TLS キーと証明書を含む を作成した
シークレットの前に
<prefix>-<metadata.name>を付ける必要があります。例として、配置を
my-deploymentと呼び出し、プレフィックスをmdbに設定した場合、クライアント TLS 通信用の TLS シークレットにmdb-my-deployment-certという名前を付ける必要があります。 また、内部クラスター認証用の TLS シークレットには名前を付ける必要があります (有効にしている場合)mdb-my-deployment-clusterfile。TLS証明書を含むシークレットの名前の詳細については、配置に適用される「レプリカセットの配置 」のトピックを参照してください。
spec.security.tls.additionalCertificateDomainsタイプ: ブール値
この配置の各ポッドの TLS 証明書に追加すべきすべてのドメインのリスト。このパラメータを設定すると、Kubernetes 演算子が TLS 証明書に変換するすべての CSR には、 の形式の SAN
<pod name>.<additional cert domain>が含まれます。Replica set resources don't need this parameter. Use
spec.connectivity.replicaSetHorizonsinstead.注意
このパラメータを TLSが有効なリソースに追加すると、リソースが
Pending状態に達したときに Kubernetes はエラーを表示します。このエラーは、次のように表示されます。Please manually remove the |csr| in order to proceed.この問題を解決するには、Kubernetes が新しい CSR を生成できるように、既存の CSR を削除します。リソースを削除する方法については、 リソースの 削除 を参照してください。 (Kubernetes ドキュメント)。
Kubernetes が CSR を生成した後に、 CSRを承認します。
spec.additionalMongodConfig.net.ssl.mode型: string
デフォルト:
requireSSLネットワーク接続に使用する
sslModeを指定します。 以下は有効なオプションです。値説明allowSSLConnections between servers do not use TLS. For incoming connections, the server accepts both TLS and non-TLS.
preferSSLConnections between servers use TLS. For incoming connections, the server accepts both TLS and non-TLS.
requireSSLサーバーはTLS暗号化接続のみを使用し、受け入れます。
spec.additionalMongodConfig.net.tls.disabledProtocols型: string
MongoDB バージョン 4.2 の新機能。
TLS で実行されている MongoDB サーバーが、1 つ以上の特定のプロトコルを使用する着信接続を受け入れることを防止します。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストを入力します。例:
TLS1_0,TLS1_1。この設定は、次のプロトコルを認識します:
TLS1_0、TLS1_1、TLS1_2、および MongoDB 4.0.4 以降 (および 3.6.9)、TLS1_3。 認識されないプロトコルを指定すると、サーバーは起動しません。macOS では、
TLS1_1を無効にして、TLS1_0とTLS1_2の両方を有効にすることはできません。 少なくともTLS1_0またはTLS1_2も無効にする必要があります。 たとえば、TLS1_0,TLS1_1は macOS でTLS1_2を無効にします。無効にするプロトコルのリストは、無効なプロトコルのデフォルトのリストを置き換えます。
MongoDBバージョン4.0 以降、システムで TLS1.0 1.1+ が利用可能な場合、 MongoDB はTLS の使用を無効にします。無効になっている TLS.1 0
nonespec.additionalMongodConfig.net.tls.disabledProtocolsを有効にするには、 の値として を指定します。レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。
spec.security.authentication.enabledタイプ: ブール値
デフォルト:
falseSpecifies whether authentication is enabled on the Cloud Manager or Ops Manager project. If set to
true, you must set an authentication mechanism inspec.security.authentication.modes.重要
この設定を含めると、
falseに設定されている場合でも、Kubernetes Operator はこの MongoDB リソースの認証を管理します。 この設定がリソース仕様に存在している間は、 Cloud ManagerまたはMongoDB Ops Managerの UI または API を使用してこのリソースの認証を構成することはできません。Cloud ManagerまたはMongoDB Ops Managerの UI または API を使用して認証を管理する場合は、この設定を省略します。
spec.security.authentication.modesタイプ: 配列
MongoDBデプロイで使用する認証メカニズムを指定します。有効な値は、
SCRAM、SCRAM-SHA-1、MONGODB-CR、X509、LDAP、OIDCです。SCRAM-SHA-1よりもSCRAM-SHA-256(SCRAM)を推奨します。SCRAM-SHA-1を指定する場合は、MONGODB-CRも指定する必要があります。注意
X.509 内部クラスター認証
To enable X.509 internal cluster authentication for the Cloud Manager or Ops Manager project, set this value to
["X509"]and specify the following settings:provide a value for the
spec.security.certsSecretPrefixsetting.`
If you provide more than one value for
spec.security.authentication.modes, you must also specify a value forspec.security.authentication.agents.mode.
spec.security.authentication.internalCluster型: string
Specifies whether X.509 internal cluster authentication is enabled.
X.509 内部クラスター認証を有効にするには、 を
"X509"に設定します。 次の設定を指定する必要があります。spec.security.authentication.modes: ["X509"]
Kubernetes 演算子は次の値を受け入れます。
["X509"]: X.509 内部クラスター認証が有効になっています。""または省略: 内部クラスター認証が有効になっていません。
重要
内部クラスター認証を有効にした後で、無効にすることはできません。
spec.security.authentication.requireClientTLSAuthenticationタイプ: ブール値
デフォルト:
falseMongoDB ホストがクライアントに TLS 証明書を使用して接続することを要求するかどうかを指定します。TLS 認証を有効にする場合、デフォルトは
trueになります。To enable TLS authentication, provide a value for the
spec.security.certsSecretPrefixsetting.
spec.security.authentication.ldapタイプ: コレクション
LDAP 認証に必要です。
Configures LDAP authentication for the Cloud Manager or Ops Manager project. To enable LDAP authentication, set
spec.security.authentication.modesto["LDAP"].
spec.security.authentication.ldap.serversタイプ: 文字列の配列
LDAP 認証に必要です。
LDAPサーバーのホスト名とポートのリスト。 次の形式で、それぞれのポートを持つホスト名を指定します。
spec: security: authentication: ldap: servers: - "<hostname1>:<port1>" - "<hostname2>:<port2>"
spec.security.authentication.ldap.transportSecurity型: string
LDAP 認証に必要です。
LDAPサーバーがTLSを受け入れるかどうかを指定します。
LDAP サーバーが TLS を受け入れる場合は、値を
tlsに設定します。LDAP サーバーが TLS を受け入れない場合は、この値を空白にするか、値をnoneに設定します。注意
noneまたはtls以外の string を指定した場合でも、Kubernetes Operator は 設定をtlsに設定します。
spec.security.authentication.ldap.caConfigMapRefタイプ: コレクション
TLS による LDAP 認証に必要です。
ConfigMap は、 LDAP サーバーの TLS 証明書を検証する CA を含みます。
spec.security.authentication.ldap.caConfigMapRef.name型: string
TLS による LDAP 認証に必要です。
ConfigMap の名前 は、 LDAP サーバーの TLS 証明書を検証する CA を含みます。
spec.security.authentication.ldap.caConfigMapRef.key型: string
TLS による LDAP 認証に必要です。
LDAP サーバーの TLS 証明書を検証する CA を保存するフィールド名。
spec.security.authentication.ldap.bindQueryUser型: string
LDAP 認証に必要です。
LDAP サーバーに接続するときに MongoDB がバインドする LDAP 識別名。
spec.security.authentication.ldap.bindQueryPasswordSecretRefタイプ: コレクション
LDAP 認証に必要です。
シークレット を指定します。これには、LDAP サーバーに接続するときに MongoDB がバインドするパスワードが含まれます。
spec.security.authentication.ldap.bindQueryPasswordSecretRef.name型: string
LDAP 認証に必要です。
シークレット の名前 は、 LDAP サーバーに接続するときに MongoDB がバインドするパスワードを含みます。
シークレット には、パスワードを保存する
passwordフィールドのみを含める必要があります。
spec.security.authentication.ldap.authzQueryTemplate型: string
LDAP 認可に必要です。
ユーザーが属する LDAP グループを取得するためにMongoDBによって実行される RFC4515 および
spec.security.authentication.ldap.serversRFC4516 LDAP 形式のクエリURLテンプレート。クエリは、 で指定されたホストに対して相対的です。テンプレートでは、次のトークンを使用できます。{USER}- Substitutes the authenticated username, or the
transformedusername, into the LDAP query.
{PROVIDED_USER}- 認証または LDAP 変換の前に、指定されたユーザー名を LDAP クエリに置き換えます。 ( MongoDB バージョン 4.2 以降で利用可能)
Tip
MongoDB マニュアルのLDAP クエリ テンプレート
spec.security.authentication.agents.automationLdapGroupDN型: string
MongoDB Agent ユーザーが属する LDAP グループの DN(Distinguished Name、識別名)。
この設定は、次の場合に必要です。
spec.security.authentication.agents.modeisLDAPorX509.
spec.security.authentication.ldap.userToDNMapping型: string
Maps the username provided to
mongodormongosfor authentication to a LDAP Distinguished Name (DN).Tip
security.ldap.userToDNMapping in the MongoDB Manual
spec.security.authentication.ldap.userCacheInvalidationIntervalタイプ: 整数
MongoDB が LDAP ユーザー キャッシュをフラッシュするまでの待機時間を秒単位で指定します。 デフォルトは 30 秒です。
spec.security.authentication.oidcProviderConfigsタイプ: コレクション
必須
MongoDB のバージョンは 7.0.11+ または 8.0.0+ である必要があります
MongoDB Enterpriseのみサポート
注意
spec.security.authentication.modeがOIDCに設定されている場合は、コレクション内の少なくとも 1 つの要素が必要です。
spec.security.authentication.oidcProviderConfigs.audience型: string
必須
外部IdP(IdP)がトークンを発行するエンティティ。外部 IdP に登録したアプリのオーディエンス値を入力します。複数の IdP が定義されている場合、これは
issuerURIを共有する構成ごとに一意の値である必要があります。
spec.security.authentication.oidcProviderConfigs.authorizationMethod型: string
必須
Valid values are
WorkforceIdentityFederationandWorkloadIdentityFederation. Configure single-sign-on for human user access to deployments with Workforce Identity Federation. For programmatic application access to deployments, use Workload Identity Federation. Only one Workforce Identity Federation IdP can be configured per MongoDB resource. To learn more, see Authentication and Authorization with OIDC/OAuth 2.0.
spec.security.authentication.oidcProviderConfigs.authorizationType型: string
必須
有効な値は
GroupMembershipとUserIDです。IdP ユーザー グループ メンバーシップに基づいて認可を付与するにはGroupMembershipを選択し、個々のユーザーに認可を付与するにはUserIDを選択します。
spec.security.authentication.oidcProviderConfigs.clientId型: string
必須
登録されたアプリケーションの一意の識別子です。外部 IdP に登録したアプリの
clientId値を入力します。
spec.security.authentication.oidcProviderConfigs.configurationName型: string
必須
この構成を識別する一意のラベル。このラベルは MongoDB Ops Manager ユーザーに表示され、認可 のユーザーとロールを作成するときに使用されます。大文字と小文字が区別され、次の文字のみを含めることができます。
英数字( から z 、0 から 9 の組み合わせ)
ハイフン(-)
アンダースコア(_)
spec.security.authentication.oidcProviderConfigs.groupsClaim型: string
任意
ユーザー プリンシパル ID を含む要求の識別子。IdP が別の要求を使用しない限り、デフォルト値を受け入れます。
spec.security.authentication.oidcProviderConfigs.issuerURI型: string
必須
登録された IdPアプリケーションによって提供される発行者値。この URI を使用して、 MongoDB は
/.wellknown/open-id-configurationエンドポイントで利用可能な OpenID プロバイダー構成ドキュメントを見つけます。MongoDB8.0+の場合、issuerURIとオーディエンスの組み合わせは、OIDC プロバイダー構成全体で一意である必要があります。その他のMongoDBバージョンでは、issuerURI自体は一意である必要があります。
spec.security.authentication.oidcProviderConfigs.requestedScopes型: string
任意
ユーザーに認可ポイントからのデータをリクエスト権限を付与するトークン。Workforce IdP の認可方法にのみ使用されます。
spec.security.authentication.oidcProviderConfigs.userClaim型: string
必須
ユーザー プリンシパル ID を含む要求の識別子。IdP が別の要求を使用しない限り、デフォルト値を受け入れます。
spec.security.authentication.agentsタイプ: コレクション
MongoDB AgentCloud ManagerまたはMongoDB Ops Manager プロジェクトの 認証構成。
spec.security.authentication.agents.mode型: string
The authentication mechanism that the MongoDB Agents for your MongoDB deployment use. Valid values are
SCRAM,SCRAM-SHA-1,MONGODB-CR,X509,OIDC, andLDAP. The value you specify must also be present inspec.security.authentication.modes. We recommendSCRAM-SHA-256(SCRAM) overSCRAM-SHA-1. If you specifySCRAM-SHA-1, you must also specifyMONGODB-CR.This setting is required if you specified more than one value for
spec.security.authentication.modes.
spec.security.authentication.agents.automationUserName型: string
Name of the user that the MongoDB Agents use to interact with your MongoDB deployment. The username is mapped to an LDAP Distinguished Name (DN) according to
spec.security.authentication.ldap.userToDNMapping. The resulting DN must already exist in your LDAP deployment.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRefタイプ: コレクション
spec.security.authentication.agents.automationUserNameユーザーのパスワードを含むシークレットの詳細。This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.name型: string
spec.security.authentication.agents.automationUserNameユーザーのパスワードを含むシークレットの名前。このシークレットは、 Kubernetes Operator を配置するのと同じ名前空間に作成する必要があります。kubectl create secret generic ldap-agent-user \ --from-literal="password=<password>" -n <metadata.namespace> This secret must contain one key, the value of which matches the password of the
spec.security.authentication.agents.automationUserNameuser in your LDAP deployment.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.key型: string
spec.security.authentication.agents.automationPasswordSecretRef.nameのユーザーのパスワードを含むspec.security.authentication.agents.automationUserNameシークレット内のキー。This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.clientCertificateSecretRef.name型: string
MongoDB Agent の TLS 証明書が含まれる シークレット を指定します。省略された場合、デフォルトは
agent-certsになります。このシークレットは、 Kubernetes Operator を配置するのと同じ名前空間に作成し、シークレットのタイプが
kubernetes.io/tlsである必要があります。
spec.security.rolesタイプ: 配列
MongoDB 配置に対するきめ細かなアクセス制御を付与するユーザー定義のロールを定義する配列。
To enable user-defined roles, the
spec.security.authentication.enabledmust betrue.例
上記の例では、
customRoleという名前のユーザー定義ロールにより、このロールを割り当てられたユーザーには次の操作を許可します。petsデータベースのcatsコレクションにドキュメントを挿入し、petsデータベース内のdogsコレクションにドキュメントを検索して挿入します。
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "8.0.0" 9 type: ReplicaSet 10 opsManager: 11 configMapRef: 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 persistent: true 15 security: 16 authentication: 17 enabled: true 18 modes: 19 - "SCRAM" 20 roles: 21 - role: "customRole" 22 db: admin 23 privileges: 24 - actions: 25 - insert 26 resource: 27 collection: cats 28 db: pets 29 - actions: 30 - insert 31 - find 32 resource: 33 collection: dogs 34 db: pets 35 ...
spec.security.roles.authenticationRestrictionsタイプ: 配列
Array that defines the IP address from which and to which users assigned this
spec.security.roles.rolecan connect.
spec.security.roles.authenticationRestrictions.clientSourceタイプ: 配列
Array of IP addresses or CIDR blocks from which users assigned this
spec.security.roles.rolecan connect.MongoDB サーバーは、リクエストがこの配列に存在しないクライアントからの接続リクエストである場合、このロールを持つユーザーからの接続リクエストを拒否します。
spec.security.roles.authenticationRestrictions.serverAddressタイプ: 配列
Array of IP addresses or CIDR blocks to which users assigned this
spec.security.roles.rolecan connect.MongoDB サーバーは、クライアントがこの配列に存在しないサーバーへの接続をリクエストした場合、このロールを持つユーザーからの接続リクエストを拒否します。
spec.security.roles.privileges.actionsタイプ: 配列
List of actions that users granted this role can perform. For a list of accepted values, see Privilege Actions in the MongoDB Manual for the MongoDB versions you deploy with the Kubernetes Operator.
spec.security.roles.privileges.resourceタイプ: コレクション
Resources for which the privilege
actionsapply.このコレクションには、次のいずれかを含める必要があります。
The
spec.security.roles.privileges.resource.clustersetting with a value oftrue.
spec.security.roles.privileges.resource.database型: string
Database for which the privilege
actionsapply.If you provide a value for this setting, you must also provide a value for
spec.security.roles.privileges.resource.collection.
spec.security.roles.privileges.resource.collection型: string
Collection in the
databasefor which the privilegeactionsapply.If you provide a value for this setting, you must also provide a value for
spec.security.roles.privileges.resource.database.
spec.security.roles.privileges.resource.clusterタイプ: ブール値
デフォルト: False
Flag that indicates that the privilege
actionsapply to all databases and collections in the MongoDB deployment. If omitted, defaults tofalse.If set to true, do not provide values for
spec.security.roles.privileges.resource.databaseandspec.security.roles.privileges.resource.collection.
例
次の例は、すべての設定が指定されたスタンドアロン配置のリソース仕様を示しています。
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-standalone spec: version: "8.0.0" service: my-service opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true type: Standalone additionalMongodConfig: systemLog: logAppend: true verbosity: 4 operationProfiling: mode: slowOp podSpec: persistence: single: storage: "12Gi" storageClass: standard labelSelector: matchExpressions: - {key: environment, operator: In, values: [dev]} podTemplate: metadata: labels: label1: mycustomlabel spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: "mykey" weight: 50 ...
次の例は、提供されたすべての設定を持つレプリカセットのリソース仕様を示しています。
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-replica-set spec: members: 3 version: "8.0.0" service: my-service opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true type: ReplicaSet podSpec: persistence: multiple: data: storage: "10Gi" journal: storage: "1Gi" labelSelector: matchLabels: app: "my-app" logs: storage: "500M" storageClass: standard podTemplate: metadata: labels: label1: mycustomlabel spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: "mykey" weight: 50 security: certsSecretPrefix: "prefix" tls: ca: custom-ca authentication: enabled: true modes: ["X509"] internalCluster: "X509" statefulSet: spec: serviceName: my-service additionalMongodConfig: net: ssl: mode: preferSSL ...
次の例は、すべての 設定が提供されているシャーディングされたクラスターのリソース仕様を示しています。
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-sharded-cluster spec: shardCount: 2 mongodsPerShardCount: 3 mongosCount: 2 configServerCount: 3 version: "8.0.0" service: my-service type: ShardedCluster ## Please Note: The default Kubernetes cluster name is ## `cluster.local`. ## If your cluster has been configured with another name, you can ## specify it with the `clusterDomain` attribute. opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true configSrvPodSpec: # if "persistence" element is omitted then Operator uses the # default size (5Gi) for mounting single Persistent Volume podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId mongosPodSpec: podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId shardPodSpec: persistence: multiple: # if the child of "multiple" is omitted then the default size will be used. # 16GB for "data", 1GB for "journal", 3GB for "logs" data: storage: "20Gi" logs: storage: "4Gi" storageClass: standard podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId mongos: additionalMongodConfig: systemLog: logAppend: true verbosity: 4 configSrv: additionalMongodConfig: operationProfiling: mode: slowOp shard: additionalMongodConfig: storage: journal: commitIntervalMs: 50 security: certsSecretPrefix: "prefix" tls: ca: custom-ca authentication: enabled: true modes: ["X509"] internalCluster: "X509" statefulSet: spec: serviceName: my-service ...
StateftSet 設定
次のステートメントセット 設定は、レプリカセットとシャーディングされたクラスターのリソースタイプにのみ適用されます。
The Kubernetes Operator supports overriding the Kubernetes Operator default StatefulSet and PVC settings by specifying values for spec.statefulSet.spec fields in the MongoDB resource specification. However, only certain fields are preserved during the merge process. The following tables list the supported override fields.
spec.statefulSet.specタイプ: コレクション
MongoDB Controls for Kubernetes Operator が
MongoDBリソースに対して作成するステートフルセットの仕様。
StatefulSet オーバーライド フィールド
次のフィールドはマージされ、spec.statefulSet.spec で値を指定すると、デフォルトの StatefulSet 設定より優先されます。フィールドパスは StatefulSet 定義に対して相対的であるため、spec.replicas は MongoDB リソース仕様の spec.statefulSet.spec.replicas に対応します。
フィールド |
|---|
|
|
|
|
|
|
|
|
|
spec.statefulSet.spec.serviceName型: string
デフォルト:
<resource_name>-svcと<resource_name>-svc-externalAtlas App Servicesが作成または使用するKubernetesサービスの名前。この名前のサービスがすでに存在する場合、 MongoDB Controls for Kubernetes Operator はサービスを削除または再作成しません。この設定により、独自のカスタム サービスを作成し、 Kubernetes Operator でそれらを再利用できます。
PVC (VolumeClaimTemplates) 上書きフィールド
Kubernetes 演算子は、ユーザーが spec.statefulSet.spec.volumeClaimTemplates で指定するボリューム要求テンプレートを、その metadata.name が既存のボリューム要求テンプレートの名前と一致する場合に限りマージします。次の表には、spec.statefulSet.spec.volumeClaimTemplates で値を指定した場合に、Kubernetes 演算子が、PVC フィールドのうちどちらを保持し、どちらを削除するかを示します。フィールドパスは個別のボリューム要求テンプレートに対して相対的であるため、MongoDB リソース仕様では spec.volumeMode は spec.statefulSet.spec.volumeClaimTemplates.spec.volumeMode に対応します。
サポートされています (保持) | 未サポート(削除) |
|---|---|
|
|
| [1] | Kubernetes 演算子は、指定したアクセス モードをデフォルトのアクセス モードに追加しますが、置き換えは行いません。 |