Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes 演算子
/

MongoDB Database リソースの仕様

項目一覧

  • Common Resource Settings
  • 必須
  • 条件付き
  • 任意
  • 配置固有のリソース設定
  • スタンドアロン設定
  • レプリカセット設定
  • シャーディングされたクラスターの設定
  • Prometheus 設定
  • セキュリティ設定
  • StateftSet 設定

注意

このページのMongoDB Ops Managerが表示されている場所では、 Cloud Managerを置き換えることができます。

MongoDBMongoDBEnterprise Kubernetes Operator Enterprise Kubernetes演算子Kubernetes は、書き込んだ仕様ファイルからKubernetesを作成します。

Kubernetes Operator は、Kubernetes 内の MongoDB 固有のリソースを カスタム リソースとして作成します。

これらのカスタム リソースを管理するには、次のプロセスを使用します。

  1. MongoDBリソース仕様を作成または更新します。

  2. MongoDB Enterprise Kubernetes Operator に指示して、Kubernetes 環境に適用します。 その結果、Kubernetes Operator は次のアクションを実行します。

    • 定義された ステートメント を作成します 、 サービス、およびその他のKubernetesリソース。

    • 変更を反映するようにMongoDB Ops Manager配置構成を更新します。

配置タイプ
StateftSets
ステートメントセットのサイズ

スタンドアロン

1

1 Pod

レプリカセット

1

シャーディングされたクラスター

<numberOfShards> + 2

1mongosポッド 、シャード、またはコンフィギュレーションサーバー ノードごと

MongoDBリソースは、 YAMLのオブジェクト仕様を使用して、MongoDB オブジェクト(スタンドアロン、レプリカセット、シャーディングされたクラスター)の特性と設定を定義します。

すべてのリソース タイプでは、次の設定を使用する必要があります。

apiVersion

: string

MongoDBリソース スキーマのバージョン。

kind

: string

作成するMongoDBリソースの種類。 これをMongoDBに設定します

metadata.name

: string

作成するMongoDBリソースの名前。

リソース名は 44 文字以下にする必要があります。

spec.credentials

: string

必須。 シークレット MongoDB Ops ManagerAPIの名前Kubernetes は、Kubernetes Operator がCloud Manager または と通信するための 認証情報として 作成MongoDB Ops Manager しました。

認証情報を保持するMongoDB Ops Manager Kubernetes Secretオブジェクトは、作成するリソースと同じ名前空間に存在する必要があります。

重要

演算子がシークレットへの変更を管理

Kubernetes Operator は、シークレットへの変更を追跡し、 MongoDBリソースの状態を調整します。

spec.persistent

タイプ: ブール値

デフォルト: True

警告: コンテナに 永続ボリューム への書込み (write) 権限を付与 。Kubernetes 演算子は、 securityContextfsGroup = 2000runAsUser = 2000runAsNonRoot = trueを設定します。 Kubernetes Operator は、 fsgrouprunAsUserと等しく設定して、コンテナでメイン プロセスを実行するユーザーがボリュームを書込み可能にします。 詳細については、「 ポッドまたはコンテナのセキュリティ コンテキストの構成 」を参照してください および関連する ディスカッション (Kubernetes ドキュメント)。リソースを再デプロイしても永続ボリュームの問題が修正されない場合は、 MongoDB サポートにお問い合わせください。

永続的なボリューム を使用しない場合 Disk UsageDisk IOPSProcessesDeploymentMetrics チャートは、この配置 のデータ を確認するときに、 ページの タブまたは ページのいずれにも表示できません。

spec.type

: string

作成するMongoDBリソースのタイプ。 指定できる値は以下のとおりです。

  • Standalone

  • ReplicaSet

  • ShardedCluster

spec.version

: string

このMongoDBリソースにインストールした MongoDB のバージョン。

重要

互換性のある MongoDB Server バージョンを選択していることを確認してください。

互換性のあるバージョンは、MongoDB database リソースが使用する基本イメージによって異なります。

注意

この値をデータベースリソース用のMongoDBの新しいバージョンに更新しても、機能の互換性バージョンはアップグレード元のMongoDBバージョンのままになり、必要に応じてダウングレードのオプションが提供されます。 機能の互換性バージョンを新しいMongoDBバージョンと一致させるには、 spec.featureCompatibilityVersionを新しいバージョンに、またはAlwaysMatchVersionに手動で設定する必要があります。 詳しくは、 spec.featureCompatibilityVersionを参照してください。

すべてのリソースは、次のいずれかの設定を使用する必要があります。

spec.opsManager.configMapRef.name

: string

ConfigMap の名前Cloud Manager またはMongoDB Ops Manager 接続構成の場合。spec.cloudManager.configMapRef.name設定はこの設定のエイリアスであり、代わりに使用できます。

この値は、作成するリソースと同じ名前空間に存在する必要があります。

重要

演算子が ConfigMap への変更を管理

Kubernetes 演算子は、ConfigMap への変更を追跡し、 MongoDBリソースの状態を調整します。

spec.cloudManager.configMapRef.name

: string

spec.opsManager.configMapRef.nameのエイリアス。

すべてのリソースの種類では、次の設定を使用できます。

metadata.annotations.mongodb.com/v1.architecture

: string

具体的な配置で使用されるコンテナ アーキテクチャを決定します。

指定できる値は次のとおりです。

  • static

  • non-static

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
annotations:
mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotate

: オブジェクト

MongoDB Agent がバックアップ ログをローテーションするしきい値。

spec.agent.backupAgent.logRotate.sizeThresholdMB

タイプ: 整数

MongoDB Agent がログをローテーションする前のバックアップ ログファイルの最大サイズ(MB 単位)。

spec.agent.backupAgent.logRotate.timeThresholdHrs

タイプ: 整数

MongoDB Agent がバックアップ ログファイルをローテーションする時間数。

spec.agent.mongod.auditlogRotate

: オブジェクト

MongoDB プロセスの監査ログ ローテーション構成を含むオブジェクト。

spec.agent.mongod.auditlogRotate.sizeThresholdMB

タイプ: 数値

MongoDB Agent がログをローテーションする前の監査ログファイルの最大サイズ(MB 単位)。

spec.agent.mongod.auditlogRotate.timeThresholdHrs

タイプ: 整数

MongoDB Agent が監査ログファイルをローテーションする時間数。

spec.agent.mongod.auditlogRotate.numUncompressed

タイプ: 整数

現在のログファイルを含む、非圧縮のままにする監査ログファイルの最大数。

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

: オブジェクト

MongoDB Ops ManagerがプロセスのMongoDBログをローテーションするしきい値。

spec.agent.mongod.logRotate.sizeThresholdMB

タイプ: 整数

MongoDB Ops Managerがログファイルをローテーションする前の、個々のログファイルの最大サイズ(MB 単位)。 MongoDB Ops Manager は、このsizeThresholdMBまたはspec.agent.mongod.logRotate.timeThresholdHrsのいずれかに指定された値を満たす場合、ログファイルをすぐにローテーションします。

spec.agent.mongod.logRotate.timeThresholdHrs

タイプ: 整数

次のローテーションまでの個々のログファイルの最大期間(時間単位)。 は最後のローテーション以降の時間です。

MongoDB Ops Manager は、ファイルがこのtimeThresholdHrsまたはspec.agent.mongod.logRotate.sizeThresholdMBのいずれかを満たすと、ログファイルをローテーションします。

spec.agent.monitoringAgent.logRotate

: オブジェクト

MongoDB Agent が監視ログをローテーションするしきい値。

spec.agent.monitoringAgent.logRotate.sizeThresholdMB

タイプ: 整数

MongoDB Agent が監視ログをローテーションする前の、個々のログファイルの最大サイズ(MB 単位)。

spec.agent.monitoringAgent.logRotate.timeThresholdHrs

タイプ: 整数

MongoDB Agent が監視ログをローテーションする時間数。

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

機能の互換性の詳細については、 MongoDBマニュアルのsetFeatureCompatibilityVersionを参照してください。

spec.clusterDomain

: string

デフォルト: cluster.local

Kubernetes Operator を配置する Kubernetes クラスターのドメイン名。 Kubernetes がステートメントを作成する場合 、Kubernetes は各 ポッド に割り当てます FQDN 。またはCloud Manager MongoDB Ops Managerを更新するために、Kubernetes 演算子は各 ポッド FQDN を計算します 指定されたクラスター名を使用します。Kubernetes では、これらのホスト名をクエリするためのAPIは提供されていません。

警告

Kubernetes クラスターに デフォルトのドメインspec.clusterDomain がある場合は、 を設定する必要があります デフォルトのcluster.local 以外。デフォルトを使用せず、 spec.clusterDomainオプションも設定しない場合、Kubernetes 演算子が期待どおりに機能しない可能性があります。

spec.clusterName

: string

デフォルト: cluster.local

重要

spec.clusterName は非推奨

代わりにspec.clusterDomainを使用してください。

Kubernetes Operator を配置する Kubernetes クラスターのドメイン名。 Kubernetes がステートメントを作成する場合 、Kubernetes は各 ポッド に割り当てます FQDN 。またはCloud Manager MongoDB Ops Managerを更新するために、Kubernetes 演算子は各 ポッド FQDN を計算します 指定されたクラスター名を使用します。Kubernetes では、これらのホスト名をクエリするためのAPIは提供されていません。

警告

Kubernetes クラスターに デフォルトのドメインspec.clusterDomain がある場合は、 を設定する必要があります デフォルトのcluster.local 以外。デフォルトを使用せず、 spec.clusterDomainオプションも設定しない場合、Kubernetes 演算子が期待どおりに機能しない可能性があります。

metadata.namespace

: string

Kubernetes 名前空間 このMongoDB リソースと他の オブジェクト を作成する場所 。

spec.service

: string

デフォルト: <resource_name>+"-svc" および <resource_name>+"-svc-external"

重要

spec.service は非推奨

代わりにspec.statefulSet.spec.serviceNameを使用してください。

Atlas App Services が作成または使用する Kubernetes サービスの名前 。この名前のサービスがすでに存在する場合、MongoDB Enterprise Kubernetes Operator はサービスを削除または再作成しません。 この設定により、独自のカスタム サービスを作成し、Kubernetes Operator でそれらを再利用できます。

spec.logLevel

: string

デフォルト: INFO

ポッド 内のオートメーションエージェントのログ記録のレベルを構成します 。受け入れ可能な値は以下の通りです。

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.security.authentication.ignoreUnknownUsers

タイプ: ブール値

デフォルト: false

Kubernetes Operator、またはCloud ManagerまたはMongoDB Ops Managerユーザー インターフェイスを通じて構成されていないデータベースユーザーを変更できるかどうかを決定します。

mongodまたはmongosを使用してデータベースユーザーを直接管理するには、この設定をtrueに設定します。

MongoDBリソース仕様で使用できる他の設定と使用する必要がある他の設定は、作成する MongoDB 配置アイテムによって異なります。

注意

すべてのスタンドアロン設定はレプリカセット リソースにも適用されます。

spec.additionalMongodConfig

タイプ: コレクション

MongoDB プロセスを開始するための追加構成オプション

Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。

Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。

使用できる構成オプションについては、 MongoDBドキュメントの「 配置の詳細オプションMongoDB Ops Manager 」を 参照してください。

spec.agent

タイプ: コレクション

MongoDB データベース リソース 用の MongoDB Agent 構成設定。

spec.agent.startupOptions

タイプ: コレクション

MongoDB データベース リソースを起動する MongoDB Agent 設定。

MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。

サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-standalone
6spec:
7 version: "6.0.0-ent"
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 database ポッドの外部エントリ ポイントを提供します。 各外部サービスには セレクター があります は、外部サービスを特定のポッドに一致させます。

値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。

フィールド
説明

Name

<pod-name>-svc-external

外部サービスの名前。 この値は変更できません。

Type

LoadBalancer

Port

<Port Number>

mongodのポート。

publishNotReadyAddress

true

DNS レコード を指定する は、Ped が準備ができていない場合でも作成されます。どのデータベース ポッドでもfalseに設定しないでください。

注意

spec.externalAccess.externalDomainを設定すると、外部サービスはバックアップ用の別のポート( Port Number + 1 )を追加します。

spec.externalAccess.externalService

タイプ: コレクション

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 仕様の詳細については、 ServiceSpec を参照してください (Kubernetes ドキュメント)。

spec.externalAccess.externalService.annotations

タイプ: コレクション

配置内のすべてのクラスターにクラウドプロバイダー固有の構成設定を追加できるキーと値のペア。 詳細については、 注釈 を参照してください Kubernetes クラウドプロバイダーのドキュメントとドキュメントを参照してください。

注釈 を使用できます で、Kubernetes Operator の配置で使用される外部サービスのプレースホルダー値を指定します。Kubernetes Operator は、これらの値を次の表に記載されている正しい値に自動的に置き換えます。 プレースホルダーを使用すると、特定のポッドの各サービスに特定の注釈を提供できます。

説明

{resourceName}

{namespace}

{podIndex}

ステートフルセット によって割り当てられたポッドのインデックス 現在の外部サービスが対象とする と

{podName}

{resourceName}-{podIndex}に等しい。

{statefulSetName}

ステートメントセット{resourceName}に等しい。

{externalServiceName}

指定したプレースホルダー値に基づいて、外部サービスの生成された名前。 {resourceName}-{podIndex}-svc-externalに等しい。

{mongodProcessDomain}

mongodプロセスをホストしているサーバーのドメイン名。指定されている場合はspec.externalAccess.externalDomain と等しくなります。それ以外の場合は、mongod プロセス FQDN に使用されるドメインと等しくなります。

たとえば、プロセス ホスト名mdb-rs-1.example.comの場合、 example.comはドメイン名になります。

{mongodProcessFQDN}

mongodオートメーション構成 で設定された プロセスのホスト名。

プロセス ホスト名は、配置構成によって異なります。 を使用するように配置を構成した場合、プロセスexternal domains ホスト名は次の形式を使用します。

{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 つのすべてのディレクトリが同じ 永続ボリューム にマウントされます。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.multipleコレクションを設定できますが、両方は設定できません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

たとえば、 のスタンドアロン配置に60ギガバイトのストレージが必要な場合は、この値を60Giに設定します。

storageClass

string

永続的なボリューム要求 で指定されるストレージのタイプ 。このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.podSpec.persistence.multiple.data

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします と は、データのディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 から、Kubernetes で スタンドアロン配置 をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.podSpec.persistence.multiple.journal

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします およびジャーナル用のディレクトリを独自の 永続ボリューム にマウントする 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 から、Kubernetes で スタンドアロン配置 をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 1Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.podSpec.persistence.multiple.logs

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします および は、ログ用のディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 から、Kubernetes で スタンドアロン配置 をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 3Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

スタンドアロン配置に必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.podSpec.podTemplate.affinity.nodeAffinity

: 構造体

Kubernetes ルール : ポッド を配置する 特定の範囲の ノード 上の レプリカセット 用 。

読み取りおよび書込みパフォーマンスを最適化するには、ノードの アフィニティ ルールを使用してノードを制限します 特定の ノード 上で を実行する 、または特定の ノード で の実行を優先する場合は 。

spec.podSpec.podTemplate.affinity.podAffinity

: 構造体

Kubernetes ルール 複数のMongoDB リソース ポッド かどうかを判断 は他の ポッド と同じ場所に配置する必要があります 。ユースケースの詳細については、「 アフィニティと非アフィニティ 」を参照してください。 (Kubernetes ドキュメント)。

spec.podSpec.podTemplate.affinity.podAntiAffinity

: 構造体

Default: kubernetes.io/hostname

ルールMongoDB を設定する ポッド を分散する リソースを異なる場所でホストする。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。 デフォルトでは、Kubernetes Operator は異なるノードにポッドを分散しようとします。

spec.podSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

: 構造体

Default: kubernetes.io/hostname

このキーは、どの ラベル を定義しますか どのトポロジー ドメイン を決定するために使用されるか ノードが属する。

spec.podSpec.podTemplate

タイプ: コレクション

テンプレート MongoDB Enterprise Kubernetes Operator が MongoDB データベース リソース用に作成する Kubernetes ポッド用。

テンプレート値は、 spec.podSpecで指定された値よりも優先されます。

注意

Kubernetes 演算子は、 spec.podSpec.podTemplateで指定したフィールドを検証しません。

spec.podSpec.podTemplate.metadata

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が MongoDB database リソース用に作成する Kubernetes ポッドのメタデータ。

spec.podSpec.podTemplate.metadataに追加できるフィールドを確認するには、 Kubernetes のドキュメント を参照してください。

spec.podSpec.podTemplate.spec

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が MongoDB データベースリソース用に作成する Kubernetes ポッドの仕様。

spec.podSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1Core API を参照してください。

注意

spec.podSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の MongoDB database リソース コンテナに追加されます。

この設定を使用して、各ポッドの CPU と RAM の割り当てを指定します。 例について Githubは、 のサンプルを参照してください。

注意

すべてのスタンドアロン設定はレプリカセット リソースにも適用されます。

レプリカセットのリソース タイプには次の設定が適用されます。

spec.backup

タイプ: コレクション

spec.backup.modeのコレクション コンテナ。Kubernetes Operator で MongoDB リソースの継続的なバックアップを可能にします。

spec.backup.assignmentLabels

タイプ: 配列

バックアップデーモン、oplog ストア、ブロックストア、 S3スナップショット ストア、ファイルシステム ストアを特定のプロジェクトまたはグループに割り当てるためのラベルのコンマ区切りリスト。 割り当てラベル を使用して、特定のバックアップ ストアが特定のプロジェクトに関連付けられていることを識別します。

Kubernetes Operator を使用して割り当てラベルを設定すると、割り当てラベルのKubernetes構成ファイルで設定した値が、 MongoDB Ops Manager UI で定義された値を上書きします。 Kubernetes Operator を使用して設定しない割り当てラベルは、 MongoDB Ops Manager UI で設定された値を引き続き使用します。

注意

このパラメータを設定する場合、 spec.credentialsの値にリンクされた API キーにGlobal Ownerロールが必要です。

spec.backup.mode

: string

MongoDB リソースの継続的なバックアップを有効にします。 指定できる値は、 enableddisabledterminatedです。

注意

spec.backup.modeの設定は、 MongoDB Ops Managerで有効になっているspec.backup.enabled バックアップMongoDB Ops Manager trueに依存します。また、 リソース仕様 の 値が に設定されている必要があります。

spec.backup.modeを使用して MongoDB リソースの継続的なバックアップを有効にすると、バックアップ ステータスを確認できます。

spec.backup.encryption

: オブジェクト

バックアップ暗号化の構成設定を含むオブジェクト。

spec.backup.encryption.kmip

: オブジェクト

KMIPバックアップ暗号化の構成設定を含むオブジェクトです。 詳細については、「 MongoDB Ops Managerの KMIP バックアップ暗号化の構成 」を参照してください。

spec.backup.encryption.kmip.client

: オブジェクト

KMIPバックアップ暗号化クライアントの構成設定を含むオブジェクト。

spec.backup.encryption.kmip.client.clientCertificatePrefix

: string

spec.backup.snapshotSchedule

タイプ: コレクション

Kubernetes Operator の MongoDB リソースの継続的なバックアップのスナップショット スケジュール設定のコレクション コンテナ。

spec.backup.snapshotSchedule.snapshotIntervalHours

タイプ: 数値

スナップショット間の時間数。 6812 、または24の値を設定できます。

spec.backup.snapshotSchedule.snapshotRetentionDays

タイプ: 数値

最近のスナップショットを保持する日数。 2から5までの値を設定できます。

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

タイプ: 数値

ポイントインタイム スナップショットを作成できる過去の時間数。

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

重要

spec.clusterName は非推奨

代わりにspec.clusterDomainを使用してください。

Kubernetes Operator を配置する Kubernetes クラスターのドメイン名。 Kubernetes がステートメントを作成する場合 、Kubernetes は各 ポッド に割り当てます FQDN 。またはCloud Manager MongoDB Ops Managerを更新するために、Kubernetes 演算子は各 ポッド FQDN を計算します 指定されたクラスター名を使用します。Kubernetes では、これらのホスト名をクエリするためのAPIは提供されていません。

警告

Kubernetes クラスターに デフォルトのドメインspec.clusterDomain がある場合は、 を設定する必要があります デフォルトのcluster.local 以外。デフォルトを使用せず、 spec.clusterDomainオプションも設定しない場合、Kubernetes 演算子が期待どおりに機能しない可能性があります。

spec.connectivity.replicaSetHorizons

タイプ: コレクション

クライアント アプリケーションと MongoDB エージェントに対して異なるDNS設定を提供できます。 Kubernetes Operator は、レプリカセット ノードに スプリット ホライゾンDNSを使用します。 この機能により、Kubernetes クラスター内と Kubernetes 外部からの両方で通信が可能になります。

ホストごとに複数の外部マッピングを追加できます。

スプリットホライゾンの要件:

この例では、レプリカセットのメンバーはexample-localhostホライゾンで相互に通信します。 クライアントはexample-websiteホライゾンを使用してレプリカセットと通信します。

記載されているホライゾンの名前は、この例では任意です。 ホライゾンには任意の名前を付けることができますが、そのホライゾンの名前が、そのホライゾンの一部であるすべてのホスト名と同じであることを確認してください。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "4.2.2-ent"
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 ポッドのFQDN*.svc.cluster.local )をデフォルトのホスト名として使用します。 ただし、この設定に外部ドメインを追加すると、レプリカセットは代わりに、指定されたドメインのサブドメインであるホスト名を使用します。 このホスト名は、次の形式を使用します。

<replica-set-name>-<pod-idx>.<externalDomain>

以下に例を挙げます。

replica-set-1.example.com

この設定でレプリカセットを配置すると、 Kubernetes Operator は外部ドメインを含むホスト名を使用して、 MongoDB Ops Managerオートメーション構成processes[n].hostname フィールドを上書きします。 次に、MongoDB Agent はこのホスト名を使用してmongodに接続します。

レプリカセットに接続するための他のホスト名を指定するには、 spec.connectivity.replicaSetHorizons設定を使用できます。 ただし、次の接続では、外部ドメインを含むホスト名は引き続き使用されます。

  • mongodに接続する MongoDB Agent

  • mongodを使用して他のmongodインスタンスに接続します。

警告:このフィールドを指定すると、 MongoDB Ops Managerがmongodプロセスを登録する方法が変更されます。 このフィールドは、Kubernetes Operator バージョン1.19以降の新しいレプリカセット配置でのみ指定できます。 実行中のレプリカセット配置のMongoDB Ops Manager自動化構成で、このフィールドまたは任意の processes[n].hostname フィールドの値を変更することはできません。

spec.members

タイプ: 整数

必須。 レプリカセットのノード数。

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

MongoDB レプリカセットがプライマリ になる相対的な可能性を示す数値。

  • レプリカセット メンバーがプライマリになる相対的な可能性を高めるには、 priorityの値を高く指定します。

  • レプリカセット メンバーがプライマリになる相対的な可能性を減らすには、 priorityの値を低く指定します。

たとえば、 memberConfig.priority1.5のメンバーは、 memberConfig.priority0.5のメンバーよりも多く、プライマリになる可能性が高くなります。

かつmemberConfig.priority0のノードはプライマリになる資格がありません。 詳しくは、「メンバーの優先順位 」を参照してください。

spec.memberConfig.tags

タイプ: map

MongoDB レプリカセットの特定のノードに読み取りおよび書込み (write) 操作を指示するためのレプリカセット タグのマップ。

spec.memberConfig.votes

タイプ: 数値

MongoDB レプリカセットのメンバーが選挙で投票できるかどうかを決定します。 メンバーに投票を許可するには を1に設定します。 ノードを選挙から除外するには、 0に設定します。

次の設定はレプリカセットのリソースタイプにのみ適用されます。

spec.backup.autoTerminateOnDeletion

タイプ: ブール値

MongoDB リソースを削除するときに Kubernetes Operator がバックアップを停止して終了するかどうかを制御するフラグ。 省略した場合、デフォルト値はfalseです。 このフラグをtrueに設定すると、 spec.backup.mode設定がenabledに設定されているときに MongoDB カスタム リソースを削除する場合に便利です。

重要

マルチクラスターのシャードクラスタの配置は現在パブリック プレビュー段階です。

注意

すべてのレプリカセット設定は、特に指定がない限り、シャーディングされたクラスター リソースにも適用されます。

次の設定は、シャーディングされたクラスターのリソース タイプにのみ適用されます。

spec.backup.snapshotSchedule.clusterCheckpointIntervalMin

タイプ: 数値

連続するクラスター チェックポイント間の分数。 この設定は、 MongoDBを機能の互換性バージョン4.0またはそれ以前のバージョンで実行するシャーディングされたクラスターにのみ適用されます。 この数値により、シャーディングされたクラスターのポイントインタイム復元の粒度が決まります。 1530 、または60の値を設定できます。

spec.configServerCount

タイプ: 整数

必須コンフィギュレーションサーバー内のメンバーの数。

spec.configSrv.additionalMongodConfig

タイプ: コレクション

各コンフィギュレーション サーバー ノード を起動するための追加 構成オプション 。

Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。

Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。

使用できる構成オプションについては、 MongoDBドキュメントの「 配置の詳細オプションMongoDB Ops Manager 」を 参照してください。

spec.configSrv.agent

タイプ: コレクション

各コンフィギュレーションサーバーノードの MongoDB Agent 構成設定。

spec.configSrv.agent.startupOptions

タイプ: コレクション

各コンフィギュレーションサーバー ノードを起動する MongoDB Agent 設定。

MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。

サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
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 つのすべてのディレクトリが同じ 永続ボリューム にマウントされます。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.multipleコレクションを設定できますが、両方は設定できません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 5Gi です。

たとえば、 の各コンフィギュレーションサーバー ノードに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

永続的なボリューム要求 で指定されるストレージのタイプ 。このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.configSrvPodSpec.persistence.multiple.data

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします と は、データのディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 は、Kubernetes で各コンフィギュレーション サーバー ノード をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.configSrvPodSpec.persistence.multiple.journal

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします およびジャーナル用のディレクトリを独自の 永続ボリューム にマウントする 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 は、Kubernetes で各コンフィギュレーション サーバー ノード をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 1Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.configSrvPodSpec.persistence.multiple.logs

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします および は、ログ用のディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 は、Kubernetes で各コンフィギュレーション サーバー ノード をホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 3Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

コンフィギュレーションサーバー ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.configSrvPodSpec.podTemplate

タイプ: コレクション

テンプレート MongoDB Enterprise Kubernetes Operator が各コンフィギュレーション サーバー ノード に対して作成する Kubernetes ポッド用。

テンプレート値は、 spec.configSrvPodSpecで指定された値よりも優先されます。

注意

Kubernetes 演算子は、 spec.configSrvPodSpec.podTemplateで指定したフィールドを検証しません。

spec.configSrvPodSpec.podTemplate.affinity.podAffinity

タイプ: コレクション

Kubernetes ルール 複数のMongoDB リソース ポッド かどうかを判断 は他の ポッド と同じ場所に配置する必要があります 。ユースケースの詳細については、「 アフィニティと非アフィニティ 」を参照してください。 (Kubernetes ドキュメント)。

spec.configSrvPodSpec.podTemplate.affinity.nodeAffinity

タイプ: コレクション

Kubernetes ルール : ポッド を配置する 特定の範囲の ノード 上の レプリカセット 用 。

読み取りおよび書込みパフォーマンスを最適化するには、ノードの アフィニティ ルールを使用してノードを制限します 特定の ノード 上で を実行する 、または特定の ノード で の実行を優先する場合は 。

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity

: string

Default: kubernetes.io/hostname

ルールMongoDB を設定する ポッド を分散する リソースを異なる場所でホストする。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。 デフォルトでは、Kubernetes Operator は異なるノードにポッドを分散しようとします。

spec.configSrvPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

: string

Default: kubernetes.io/hostname

このキーは、どの ラベル を定義しますか どのトポロジー ドメイン を決定するために使用されるか ノードが属する。

spec.configSrvPodSpec.podTemplate.metadata

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各コンフィギュレーションサーバー ノードに対して作成する Kubernetes ポッドのメタデータ。

spec.configSrvPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、 Kubernetes のドキュメント を参照してください。

spec.configSrvPodSpec.podTemplate.spec

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各コンフィギュレーションサーバー ノードに対して作成する Kubernetes ポッドの仕様。

spec.configSrvPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1Core API を参照してください。

注意

spec.configSrvPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の各コンフィギュレーションサーバー ノードコンテナに追加されます。

この設定を使用して、各ポッドの CPU と RAM の割り当てを指定します。 例について Githubは、 のサンプルを参照してください。

spec.mongodsPerShardCount

タイプ: 整数

必須シャードあたりのメンバー数。

spec.mongosCount

タイプ: 整数

必須シャーディングされた mongosクラスター内 の インスタンスの数。

spec.mongos.additionalMongodConfig

タイプ: コレクション

mongos インスタンスを起動するための追加 構成オプション

Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。

Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。

使用できる構成オプションについては、 MongoDBドキュメントの「 配置の詳細オプションMongoDB Ops Manager 」を 参照してください。

spec.mongos.agent

タイプ: コレクション

mongosインスタンスの MongoDB Agent 構成設定。

spec.mongos.agent.startupOptions

タイプ: コレクション

mongosインスタンスの起動に使用する MongoDB Agent 設定。

MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。

サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
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 Enterprise Kubernetes Operator が各 インスタンスに対して作成する Kubernetesmongos ポッドの場合、

テンプレート値は、 spec.mongosPodSpecで指定された値よりも優先されます。

注意

Kubernetes 演算子は、 spec.mongosPodSpec.podTemplateで指定したフィールドを検証しません。

spec.mongosPodSpec.podTemplate.affinity.podAffinity

タイプ: コレクション

任意。 Kubernetes ルール 複数のMongoDB リソース ポッド かどうかを判断する は他の ポッド と同じ場所に配置する必要があります

spec.mongosPodSpec.podTemplate.affinity.nodeAffinity

タイプ: コレクション

Kubernetes ルール : ポッド を配置する 特定の範囲の ノード 上の レプリカセット 用 。

読み取りおよび書込みパフォーマンスを最適化するには、ノードの アフィニティ ルールを使用してノードを制限します 特定の ノード 上で を実行する 、または特定の ノード で の実行を優先する場合は 。

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity

: string

Default: kubernetes.io/hostname

ルールMongoDB を設定する ポッド を分散する リソースを異なる場所でホストする。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。 デフォルトでは、Kubernetes Operator は異なるノードにポッドを分散しようとします。

spec.mongosPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

: string

Default: kubernetes.io/hostname

このキーは、どの ラベル を定義しますか どのトポロジー ドメイン を決定するために使用されるか ノードが属する。

spec.mongosPodSpec.podTemplate.metadata

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各mongosインスタンスに対して作成する Kubernetes ポッドのメタデータ。

spec.mongosPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、 Kubernetes のドキュメント を参照してください。

spec.mongosPodSpec.podTemplate.spec

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各mongosインスタンスに対して作成する Kubernetes ポッドの仕様。

spec.mongosPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1Core API を参照してください。

注意

spec.mongosPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の各mongosインスタンス コンテナに追加されます。

この設定を使用して、各ポッドの CPU と RAM の割り当てを指定します。 例について Githubは、 のサンプルを参照してください。

spec.shardCount

タイプ: 整数

必須。 シャーディングされたクラスター内の シャード の数。

spec.shard.additionalMongodConfig

タイプ: コレクション

各シャーディングされた クラスター のシャード ノードを起動するための追加 構成オプション 。

Kubernetes Operator は、MongoDB Agent を通じて配置する MongoDB バージョンがサポートするすべての構成オプションをサポートしています。ただし、Kubernetes Operator は、次のいずれかのオプションに指定した値を上書きします。

Kubernetes Operator が所有する構成オプションの詳細については、「 MongoDB Kubernetes Operator 専用設定 」を参照してください。

使用できる構成オプションについては、 MongoDBドキュメントの「 配置の詳細オプションMongoDB Ops Manager 」を 参照してください。

spec.shard.agent

タイプ: コレクション

各シャーディングされたクラスターのシャード ノードの MongoDB Agent の構成設定。

spec.shard.agent.startupOptions

タイプ: コレクション

各シャーディングされたクラスターのシャード ノードを起動する MongoDB Agent 設定。

MongoDB Agent 設定はキーと値のペアとして提供する必要があります。 値は文字列である必要があります。

サポートされている MongoDB Agent 設定のリストについては、以下を参照してください。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "6.0.0-ent"
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 が 永続的なボリューム要求 を作成するようにします と は、データのディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.shardPodSpec.persistence.multiple.journal

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします およびジャーナル用のディレクトリを独自の 永続ボリューム にマウントする 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 1Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.shardPodSpec.persistence.multiple.logs

タイプ: コレクション

Kubernetes Operator が 永続的なボリューム要求 を作成するようにします および は、ログ用のディレクトリを独自の 永続ボリューム にマウントします。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.singleコレクションを設定できますが、両方を設定することはできません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

Kubernetes ノード で使用可能である必要がある最小ストレージ容量 各シャーディングされた クラスター のシャード ノードを Kubernetes でホストします。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 3Gi です。

たとえば、このMongoDBリソースに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

各シャーディングされたクラスターのシャード ノードに必要なストレージのタイプ。 このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

spec.shardPodSpec.podTemplate

タイプ: コレクション

テンプレート MongoDB Enterprise Kubernetes Operator が各シャーディングされ たクラスター のシャード ノードに対して作成する Kubernetes ポッド用。

テンプレート値は、 spec.shardPodSpecで指定された値よりも優先されます。

注意

Kubernetes 演算子は、 spec.shardPodSpec.podTemplateで指定したフィールドを検証しません。

spec.shardPodSpec.podTemplate.affinity.podAffinity

: string

Kubernetes ルール 複数のMongoDB リソース ポッド かどうかを判断 は他の ポッド と同じ場所に配置する必要があります 。ユースケースの詳細については、「 アフィニティと非アフィニティ 」を参照してください。 (Kubernetes ドキュメント)。

spec.shardPodSpec.podTemplate.affinity.nodeAffinity

: string

Kubernetes ルール : ポッド を配置する 特定の範囲の ノード 上の レプリカセット 用 。

読み取りおよび書込みパフォーマンスを最適化するには、ノードの アフィニティ ルールを使用してノードを制限します 特定の ノード 上で を実行する 、または特定の ノード で の実行を優先する場合は 。

spec.shardPodSpec.podTemplate.affinity.podAntiAffinity

: string

Default: kubernetes.io/hostname

ルールMongoDB を設定する ポッド を分散する リソースを異なる場所でホストする。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。 デフォルトでは、Kubernetes Operator は異なるノードにポッドを分散しようとします。

spec.shardPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

: string

Default: kubernetes.io/hostname

このキーは、どの ラベル を定義しますか どのトポロジー ドメイン を決定するために使用されるか ノードが属する。

spec.shardPodSpec.podTemplate.metadata

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各シャーディングされたクラスターのシャード ノードに対して作成する Kubernetes ポッドのメタデータ。

spec.shardPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、 Kubernetes のドキュメント を参照してください。

spec.shardPodSpec.podTemplate.spec

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が各シャーディングされたクラスターのシャード ノードに対して作成する Kubernetes ポッドの仕様。

spec.shardPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1Core API を参照してください。

注意

spec.shardPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の各シャーディングされたクラスターのシャード ノードのコンテナに追加されます。

この設定を使用して、各ポッドの CPU と RAM の割り当てを指定します。 例について Githubは、 のサンプルを参照してください。

spec.shardSpecificPodSpec

タイプ: 配列

ステートメント を含むリスト は、シャードごとに上書きします。

spec.shardSpecificPodSpec.podTemplate

タイプ: コレクション

テンプレート MongoDB Enterprise Kubernetes Operator が特定のシャードに対して作成する Kubernetes ポッド用。

テンプレート値は、 spec.shardSpecificPodSpecで指定された値よりも優先されます。

注意

Kubernetes 演算子は、 spec.shardSpecificPodSpec.podTemplateで指定したフィールドを検証しません。

spec.shardSpecificPodSpec.podTemplate.affinity.podAffinity

: string

Kubernetes ルール 複数のMongoDB リソース ポッド かどうかを判断 は他の ポッド と同じ場所に配置する必要があります 。ユースケースの詳細については、「 アフィニティと非アフィニティ 」を参照してください。 (Kubernetes ドキュメント)。

spec.shardSpecificPodSpec.podTemplate.affinity.podAntiAffinity

: string

Default: kubernetes.io/hostname

ルールMongoDB を設定する ポッド を分散する リソースを異なる場所でホストする。ロケーションは、単一のノード、ロック、またはリージョンにすることができます。 デフォルトでは、Kubernetes Operator は異なるノードにポッドを分散しようとします。

spec.shardSpecificPodSpec.podTemplate.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

: string

Default: kubernetes.io/hostname

このキーは、どの ラベル を定義しますか どのトポロジー ドメイン を決定するために使用されるか ノードが属する。

spec.shardSpecificPodSpec.podTemplate.metadata

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が特定のシャードに対して作成する Kubernetes ポッドのメタデータ。

spec.shardSpecificPodSpec.podTemplate.metadataに追加できるフィールドを確認するには、 Kubernetes のドキュメント を参照してください。

spec.shardSpecificPodSpec.podTemplate.spec

タイプ: コレクション

MongoDB Enterprise Kubernetes Operator が特定のシャードに対して作成する Kubernetes ポッドの仕様。

spec.shardSpecificPodSpec.podTemplate.specに追加できるフィールドを確認するには、Kubernetes PodSpec v1Core API を参照してください。

注意

spec.shardSpecificPodSpec.podTemplate.spec.containersにコンテナを追加すると、Kubernetes Operator はそれらを Kubernetes ポッドに追加します。 これらのコンテナは、ポッド内の特定のシャード コンテナに追加されます。

この設定を使用して、各ポッドの CPU と RAM の割り当てを指定します。 例について Githubは、 のサンプルを参照してください。

spec.topology

: string

任意

デフォルト: SingleCluster

シャーディングされたシャーディングされたクラスターのトポロジーを定義します。 既存の配置では変更できません。 MultiClusterに設定されている場合:

  • すべてのシャーディングされたクラスターコンポーネントには clusterSpecList が定義されている必要があります。

    • spec.mongos.clusterSpecList

    • spec.configSrv.clusterSpecList

    • spec.shard.clusterSpecList

  • 次のフィールドは無視され、spec.<section>.clusterSpecList オブジェクト内の各クラスターに同等の値が渡されます。

    • spec.mongodsPerShardCount は で定義されています spec.shard.clusterSpecList.members

    • spec.mongosCount は で定義されています spec.mongos.clusterSpecList.members

    • spec.configServerCount は で定義されています spec.configSrv.clusterSpecList.members

    • spec.shardOverrides.memberConfig は で定義されています spec.shardOverrides.clusterSpecList.memberConfig

    • spec.shardOverrides.members は で定義されています spec.shardOverrides.clusterSpecList.members

    • spec.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

注意

このフィールドは、 マルチクラスターのシャーディングされたクラスターの配置 でのみ使用できます。これらは現在public preview段階です。

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

必須topology=MultiClusterの場合)

次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。

clusterName

: string

MongoDB Enterprise Kubernetes Operator が ステートメント をスケジュールするクラスターの名前

externalAccess

タイプ: コレクション

マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。

これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。

spec.externalAccessを追加すると、Kubernetes Operator はレプリカセット内の各ポッドの外部サービスを作成します。 外部サービスは、クラスター内の各 MongoDB database ポッドの外部エントリ ポイントを提供します。 各外部サービスには セレクター があります は、外部サービスを特定のポッドに一致させます。

値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。

フィールド
説明

Name

<pod-name>-svc-external

外部サービスの名前。 この値は変更できません。

Type

LoadBalancer

Port

<Port Number>

mongodのポート。

publishNotReadyAddress

true

DNS レコード を指定する は、Ped が準備ができていない場合でも作成されます。どのデータベース ポッドでも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: 6.0.0-ent
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

タイプ: コレクション

spec.configSrv.clusterSpecListspec.shard.clusterSpecListに渡されるclusterSpecItemオブジェクトでのみ利用可能。 特定のクラスターの既存の永続化構成を上書きします。

statefulSet

タイプ: コレクション

ステートフルセット の構成を提供します マルチ Kubernetes クラスターMongoDBデプロイにおけるクラスターの各ステートメントセットの オーバーライド。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、 spec.status.spec を参照してください。

この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。

spec.duplicateServiceObjects

注意

このフィールドは、 マルチクラスターのシャーディングされたクラスターの配置 でのみ使用できます。これらは現在public preview段階です。

タイプ: ブール値

任意

デフォルト: true

トポロジーがMultiClusterでない場合は無視されます。 すべてのシャーディングされたクラスターコンポーネントのサービスに適用されます( mongosconfigSrvshards

trueに設定されている場合:
Kubernetes演算子は、各ノード クラスター内のすべてのノード クラスターからすべてのPod Servicesを作成します。
falseに設定されている場合:
Kubernetes演算子は、次のみを作成します:
spec.mongos.clusterSpecList

注意

このフィールドは、 マルチクラスターのシャーディングされたクラスターの配置 でのみ使用できます。これらは現在public preview段階です。

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

必須topology=MultiClusterの場合)

次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。

clusterName

: string

MongoDB Enterprise Kubernetes Operator が ステートメント をスケジュールするクラスターの名前

externalAccess

タイプ: コレクション

マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。

これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。

spec.externalAccessを追加すると、Kubernetes Operator はレプリカセット内の各ポッドの外部サービスを作成します。 外部サービスは、クラスター内の各 MongoDB database ポッドの外部エントリ ポイントを提供します。 各外部サービスには セレクター があります は、外部サービスを特定のポッドに一致させます。

値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。

フィールド
説明

Name

<pod-name>-svc-external

外部サービスの名前。 この値は変更できません。

Type

LoadBalancer

Port

<Port Number>

mongodのポート。

publishNotReadyAddress

true

DNS レコード を指定する は、Ped が準備ができていない場合でも作成されます。どのデータベース ポッドでも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: 6.0.0-ent
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デプロイにおけるクラスターの各ステートメントセットの オーバーライド。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、 spec.status.spec を参照してください。

この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。

spec.shard.clusterSpecList

注意

このフィールドは、 マルチクラスターのシャーディングされたクラスターの配置 でのみ使用できます。これらは現在public preview段階です。

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

必須topology=MultiClusterの場合)

次の最上位フィールドを持つマルチクラスターのシャーディングされたクラスター配置で使用するオブジェクトの配列。

clusterName

: string

MongoDB Enterprise Kubernetes Operator が ステートメント をスケジュールするクラスターの名前

externalAccess

タイプ: コレクション

マルチ Kubernetes クラスター MongoDB 配置を外部接続用に公開するための仕様。 Kubernetes クラスターの外部からマルチ Kubernetes クラスター MongoDB 配置に接続する方法については、「 Kubernetes 外部からマルチクラスター リソースに接続する 」を参照してください。

これらの設定は、すべてのクラスターのサービスに適用されます。 特定のクラスターでこれらのグローバル設定をオーバーライドするには、 spec.clusterSpecList.externalAccess.externalService を使用します。

spec.externalAccessを追加すると、Kubernetes Operator はレプリカセット内の各ポッドの外部サービスを作成します。 外部サービスは、クラスター内の各 MongoDB database ポッドの外部エントリ ポイントを提供します。 各外部サービスには セレクター があります は、外部サービスを特定のポッドに一致させます。

値なしでこの設定を追加すると、Kubernetes Operator は次のデフォルト値を持つ外部サービスを作成します。

フィールド
説明

Name

<pod-name>-svc-external

外部サービスの名前。 この値は変更できません。

Type

LoadBalancer

Port

<Port Number>

mongodのポート。

publishNotReadyAddress

true

DNS レコード を指定する は、Ped が準備ができていない場合でも作成されます。どのデータベース ポッドでも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: 6.0.0-ent
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

タイプ: コレクション

spec.configSrv.clusterSpecListspec.shard.clusterSpecListに渡されるclusterSpecItemオブジェクトでのみ利用可能。 特定のクラスターの既存の永続化構成を上書きします。

statefulSet

タイプ: コレクション

ステートフルセット の構成を提供します マルチ Kubernetes クラスターMongoDBデプロイにおけるクラスターの各ステートメントセットの オーバーライド。マルチ Kubernetes クラスターMongoDBデプロイ内のすべてのクラスターに適用されるグローバル構成を設定するには、 spec.status.spec を参照してください。

この設定は、マルチ Kubernetes クラスター MongoDB 配置のレプリカセット リソース タイプにのみ適用されます。

spec.shardOverrides

注意

このフィールドは、 マルチクラスターのシャーディングされたクラスターの配置 でのみ使用できます。これらは現在public preview段階です。

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

任意

シャードごとのオーバーライドを含むリスト。 各オブジェクトには、次のフィールドが含まれています。

  • shardNames

    必須

    このオーバーライドが適用されるシャードの名前。

  • podSpec.Persistence

    任意

    Kubernetes Operator が永続ボリュームを作成してシャードにバインドする方法を定義します。 topology=MultiClusterの場合、すべてのノード クラスターの永続化設定を設定します。 spec.shardOverrides.clusterSpecList.persistenceでは、特定のノード クラスターの永続設定を定義できます。

  • additionalMongodConfig

    任意

    spec.shard.additionalMongodConfigのシャード固有の上書き。

  • agent

    任意

    spec.shard.agentのシャード固有の上書き。

  • statefulSet

    任意

    spec.shardPodSpec.podTemplatespec.shard.clusterSpecList.statefulSetのシャード固有の上書き。

  • members

    任意

    topology=SingleClusterの場合にのみ利用可能です。 spec.mongodsPerShardCountのオーバーライド用のシャード固有オーバーライド。

  • memberConfig

    任意

    topology=SingleClusterの場合にのみ利用可能です。 spec.shard.memberConfigのシャード固有の上書き。

spec.shardPodSpec.persistence.single

タイプ: コレクション

Kubernetes Operator が 1 つの 永続ボリューム要求 を作成するようにします と では、データ、ジャーナル、ログの 3 つのすべてのディレクトリが同じ 永続ボリューム にマウントされます。 。

注意

  • spec.persistent : trueの場合は、このコレクションに値を設定する必要があります。

  • このコレクションまたはpersistence.multipleコレクションを設定できますが、両方は設定できません。

スカラー
データ型
説明

labelSelector

string

タグ マウントされたボリュームをディレクトリにバインドするために使用されます。

storage

string

永続ボリューム の最小サイズ マウントする必要があるもの。この値は、 JEDEC表記では、整数とそれに続くストレージの単位として表されます。

デフォルト値は 16Gi です。

たとえば、 の各シャーディングされたクラスターのシャード ノードに60ギガバイトのストレージ容量が必要な場合は、この値を60Giに設定します。

storageClass

string

永続的なボリューム要求 で指定されるストレージのタイプ 。このストレージ タイプは、 StorageClass として作成できます。 この オブジェクト で使用する前にオブジェクトを 仕様。

StorageClass を必ず設定してください 保持 するreclaimPolicy 。これにより、 永続的なボリューム要求 が発生した場合にデータが保持できます は削除されます。

Prometheus は、スタンドアロン リソース、レプリカセット、またはシャーディングされたクラスターで使用できます。 詳細については、「 Prometheus で使用するリソースの配置」を参照してください。 例については、「 Prometheus と MongoDB リソース 」を参照してください。

MongoDB リソースで Prometheus を使用する場合、次の設定が適用されます。

spec.prometheus

タイプ: 配列

任意

Prometheus にメトリクスを公開するためのパラメーターを含むリスト。

spec.prometheus.metricsPath

: string

任意

デフォルト: "/metrics"

メトリクス エンドポイントへのパスを示す、人間が判読可能なstring 。 この設定を指定しない場合、デフォルトが適用されます。

spec.prometheus.passwordSecretRef

: オブジェクト

条件付き

シークレット の詳細を含むオブジェクト 基本的な HTTP 認証用。MongoDB リソースで Prometheus を使用する場合は、この設定を指定する必要があります。

spec.prometheus.passwordSecretRef.key

: string

任意

デフォルト: "password"

シークレット 内のキーを識別する、人間が判読可能な 基本的なstringHTTP 認証のパスワードを保存します。この設定を指定しない場合、デフォルトが適用されます。

spec.prometheus.passwordSecretRef.name

: string

条件付き

秘密 を識別する、人間が判読可能なラベル 基本的な HTTP 認証用のパスワードを含むMongoDB リソースで Prometheus を使用する場合は、この設定を指定する必要があります。

spec.prometheus.port

タイプ: 整数

任意

デフォルト: 9216

メトリクス エンドポイントがバインドするポートを識別する番号。 この設定を指定しない場合、デフォルトが適用されます。

spec.prometheus.tlseSecretKeyRef

: オブジェクト

任意

シークレット の詳細を含むオブジェクト TLS 認証用。

spec.prometheus.tlseSecretKeyRef.key

: string

任意

デフォルト: "password"

シークレットstring 内のキーを識別する、人間が判読可能な は TLS 認証用のパスワードを保存します。この設定を指定しない場合、デフォルトが適用されます。

spec.prometheus.tlseSecretKeyRef.name

: string

条件付き

秘密 を識別する、人間が判読可能なラベル TLS 認証用のパスワードを含むMongoDB リソースで Prometheus を使用し、 TLS認証を使用する場合は、この設定を指定する必要があります。

spec.prometheus.username

: string

条件付き

基本的な HTTP 認証のユーザーを識別する、人間が判読可能なラベル。 MongoDB リソースで Prometheus を使用する場合は、この設定を指定する必要があります。

次のセキュリティ設定は、レプリカセットとシャーディングされたクラスターのリソース タイプにのみ適用されます。

spec.security.tls.enabled

タイプ: ブール値

デフォルト: false

重要

spec.security.tls.enabledは Kubernetes Operator バージョン1.19以降非推奨です。 TLSを有効にするには、 spec.security.certsSecretPrefix設定の値を指定します。

TLS 証明書を使用して以下の間の通信を暗号化します。

  • レプリカセットまたはシャーディングされたクラスター構成内の MongoDB ホスト

  • クライアント( mongo shell、ドライバー、 MongoDB Compassなど)と MongoDB の配置

デフォルトでは、 net.ssl.moderequireSSLに設定されています。 クライアントとデータベース接続に使用されるTLSモードを変更するには、 spec.additionalMongodConfig.net.ssl.modeを参照してください。

spec.security.tls.ca

: string

ConfigMap の名前を指定するMongoDB これは リソースの CA を保存します。

重要

カスタム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 Operator が TLS 証明書に変換するすべての CSR に、形式 の SAN が含まれ<pod name>.<additional cert domain>

レプリカセット リソースには、このパラメーターは必要ありません。 Use spec.connectivity.replicaSetHorizons instead.

注意

このパラメータをTLS対応のリソースに追加すると、リソースがPending状態に達したときに Kubernetes にエラーが表示されます。 このエラーは表示されます。 Please manually remove the |csr| in order to proceed.この問題を解決するには、以下の手順を行います。

  1. Kubernetes が新しい CSR を生成できるように、既存の CSR を削除します。リソースを削除する方法については、 リソースの 削除 を参照してください。 (Kubernetes ドキュメント)。

  2. Kubernetes が CSR を生成した後に、 CSRを承認します。

spec.additionalMongodConfig.net.ssl.mode

: string

デフォルト: requireSSL

ネットワーク接続に使用するsslModeを指定します。 以下は有効なオプションです。

説明

allowSSL

サーバー間の接続ではTLSは使用されません。 着信接続の場合、サーバーではTLSと非 TLS のいずれも受け付けます。

preferSSL

サーバー間の接続ではTLSが使用されます。 着信接続の場合、サーバーではTLSと非 TLS のいずれも受け付けます。

requireSSL

サーバーはTLS暗号化接続のみを使用し、受け入れます。

spec.additionalMongodConfig.net.tls.disabledProtocols

: string

MongoDB バージョン 4.2 の新機能。

TLSによって実行されている MongoDB サーバーで、1 つ以上の特定のプロトコルを使用する着信接続を受け付けないようにします。 複数のプロトコルを指定するには、プロトコルをコンマで区切ったリストで入力します。 たとえば、 TLS1_0,TLS1_1

この設定は、次のプロトコルを認識します: TLS1_0TLS1_1TLS1_2 、および MongoDB 4.0.4 以降 (および 3.6.9)、 TLS1_3 。 認識されないプロトコルを指定すると、サーバーは起動しません。

macOS では、 TLS1_1を無効にして、 TLS1_0TLS1_2の両方を有効にすることはできません。 少なくともTLS1_0またはTLS1_2も無効にする必要があります。 たとえば、 TLS1_0,TLS1_1は macOS でTLS1_2を無効にします。

無効にするプロトコルのリストは、無効なプロトコルのデフォルトのリストを置き換えます。

MongoDB バージョン4.0以降、 MongoDB 1.01.1は、システムで TLS + が利用可能な場合、 TLS の使用を無効にします。無効になっているTLSを有効にするには1を使用します。 0 、 spec.additionalMongodConfig.net.tls.disabledProtocolsの値としてnoneを指定する。 この設定の詳細については、「 TLS を無効にする1 」を参照してください。 0 。

レプリカセットとシャーディングされたクラスターのノード間では、少なくとも 1 つのプロトコルが共通している必要があります。

spec.security.authentication

タイプ: コレクション

MongoDB 配置の認証仕様。

spec.security.authentication.enabled

タイプ: ブール値

デフォルト: false

Cloud ManagerまたはMongoDB Ops Managerプロジェクトで認証が有効になっているかどうかを指定します。 trueに設定されている場合は、 spec.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 配置で使用する認証メカニズムを指定します。 有効な値は、 SCRAMSCRAM-SHA-1MONGODB-CRX509LDAPです。 SCRAM-SHA-1よりもSCRAM-SHA-256SCRAM )を推奨します。 SCRAM-SHA-1を指定する場合は、 MONGODB-CRも指定する必要があります。

注意

X.509 内部クラスター認証

509またはCloud Manager MongoDB Ops Managerプロジェクトで X. 内部クラスター認証 を有効にするには、この値を["X509"] に設定し、次の設定を指定します。

spec.security.authentication.modesに複数の値を指定する場合は、 spec.security.authentication.agents.modeの値も指定する必要があります。

spec.security.authentication.internalCluster

: string

X. 509内部クラスター認証を有効にするかどうかを指定します。

X.509 内部クラスター認証を有効にするには、 を"X509"に設定します。 次の設定を指定する必要があります。

Kubernetes 演算子は次の値を受け入れます。

  • ["X509"]: X.509 内部クラスター認証が有効になっています。

  • "" または省略: 内部クラスター認証が有効になっていません。

重要

内部クラスター認証を有効にした後で、無効にすることはできません。

spec.security.authentication.requireClientTLSAuthentication

タイプ: ブール値

デフォルト: false

MongoDB ホストがクライアントにTLS証明書を使用して接続することを要求するかどうかを指定します。 TLS認証を有効にする場合、デフォルトはtrueになります。

TLS認証を有効にするには、 spec.security.certsSecretPrefix設定の値を指定します。

spec.security.authentication.ldap

タイプ: コレクション

LDAP 認証に必要です。

LDAPCloud ManagerまたはMongoDB Ops Manager プロジェクトの 認証を構成します。LDAP認証を有効にするには、 spec.security.authentication.modes["LDAP"]に設定します。

spec.security.authentication.ldap.servers

タイプ: 文字列の配列

LDAP 認証に必要です。

LDAPサーバーのホスト名とポートのリスト。 次の形式で、それぞれのポートを持つホスト名を指定します。

spec:
security:
authentication:
ldap:
servers:
- "<hostname1>:<port1>"
- "<hostname2>:<port2>"
spec.security.authentication.ldap.timeoutMS

タイプ: 整数

認証リクエストがタイムアウトするまでの待機時間をミリ秒単位で指定します。

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 認証に必要です。

MongoDB が LDAP サーバーに接続するときにバインドする 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 認可に必要です。

RFC4515 RFC4516 ユーザーが属する LDAP グループを取得するために MongoDB によって実行される LDAP 形式のクエリ URL テンプレート。クエリは、 spec.security.authentication.ldap.serversで指定されたホストに対して相対的です。 テンプレートでは、次のトークンを使用できます。

  • {USER}
    認証されたユーザー名、またはtransformedユーザー名を LDAP クエリに置き換えます。
  • {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.ldap.userToDNMapping

: string

認証用にmongodまたはmongosに指定されたユーザー名を LDAP 識別名(DN)にマッピングします。

Tip

以下も参照してください。

MongoDB マニュアルのsecurity.ldap.userToDNMapping

spec.security.authentication.ldap.userCacheInvalidationInterval

タイプ: 整数

MongoDB が LDAP ユーザー キャッシュをフラッシュするまでの待機時間を秒単位で指定します。 デフォルトは 30 秒です。

spec.security.authentication.agents

タイプ: コレクション

MongoDB AgentCloud ManagerまたはMongoDB Ops Manager プロジェクトの 認証構成。

spec.security.authentication.agents.mode

: string

MongoDB 配置の MongoDB エージェントが使用する認証メカニズム。 有効な値は、 SCRAMSCARM-SHA-1MONGODB-CRX509LDAPです。 指定する値はspec.security.authentication.modesにも存在する必要があります。 SCRAM-SHA-1よりもSCRAM-SHA-256SCRAM )を推奨します。 SCRAM-SHA-1を指定する場合は、 MONGODB-CRも指定する必要があります。

この設定は、 spec.security.authentication.modesに複数の値を指定した場合に必要です。

spec.security.authentication.agents.automationUserName

: string

MongoDB エージェントが MongoDB 配置を操作するために使用するユーザーの名前。 ユーザー名は、 spec.security.authentication.ldap.userToDNMappingに従って LDAP 識別名(DN)にマッピングされます。 結果の DN は LDAP 配置にすでに存在している必要があります。

この設定は、 spec.security.authentication.agents.modeLDAPである場合に必要です。

spec.security.authentication.agents.automationPasswordSecretRef

タイプ: コレクション

シークレット の詳細spec.security.authentication.agents.automationUserName これには ユーザーのパスワードが含まれます。

この設定は、 spec.security.authentication.agents.modeLDAPである場合に必要です。

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>

このシークレットには 1 つのキーが含まれている必要があり、その値は LDAP 配置内のspec.security.authentication.agents.automationUserNameユーザーのパスワードと一致します。

この設定は、 spec.security.authentication.agents.modeLDAPである場合に必要です。

spec.security.authentication.agents.automationPasswordSecretRef.key

: string

シークレット 内のキーspec.security.authentication.agents.automationPasswordSecretRef.name spec.security.authentication.agents.automationUserNameこれは、 のユーザーのパスワードを含みます。

この設定は、 spec.security.authentication.agents.modeLDAPである場合に必要です。

spec.security.authentication.agents.clientCertificateSecretRef.name

: string

シークレット を指定します MongoDB Agent の TLS 証明書が含まれる。省略された場合、デフォルトはagent-certsとなります。

このシークレットには、次のキーが含まれている必要があります。これらのキーの値は、サーバーによって検証できるTLS証明書です。

  • mms-automation-agent-pem

  • mms-backup-agent-pem

  • mms-monitoring-agent-pem

このシークレットは、Kubernetes Operator を配置するのと同じ名前空間に作成する必要があります。

kubectl create secret generic agent-certs \
--from-file=mms-automation-agent-pem=<automation-cert.pem> \
--from-file=mms-backup-agent-pem=<backup-cert.pem> \
--from-file=mms-monitoring-agent-pem=<monitoring-cert.pem> \
--namespace=<metadata.namespace>
spec.security.roles

タイプ: 配列

MongoDB 配置に対するきめ細かなアクセス制御を付与するユーザー定義のロールを定義する配列。

ユーザー定義ロールを有効にするには、 spec.security.authentication.enabledtrueである必要があります。

上記の例では、 customRoleという名前のユーザー定義ロールにより、このロールを割り当てられたユーザーには次の操作を許可します。

  • petsデータベースのcatsコレクションにドキュメントを挿入し、

  • petsデータベース内のdogsコレクションにドキュメントを検索して挿入します。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "4.2.2-ent"
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.role

: string

ユーザー定義ロールの名前。

spec.security.roles.db

: string

ユーザー定義ロールを保存するデータベース。

admin

spec.security.roles.authenticationRestrictions

タイプ: 配列

このspec.security.roles.roleを割り当てられたユーザーが接続できる IP アドレスと接続できる IP アドレスを定義する配列。

spec.security.roles.authenticationRestrictions.clientSource

タイプ: 配列

このspec.security.roles.roleを割り当てられたユーザーが接続できる IP アドレスまたは CIDR ブロックの配列。

MongoDB サーバーは、リクエストがこの配列に存在しないクライアントからの接続リクエストである場合、このロールを持つユーザーからの接続リクエストを拒否します。

spec.security.roles.authenticationRestrictions.serverAddress

タイプ: 配列

このspec.security.roles.roleを割り当てられたユーザーが接続できる IP アドレスまたは CIDR ブロックの配列。

MongoDB サーバーは、クライアントがこの配列に存在しないサーバーへの接続をリクエストした場合、このロールを持つユーザーからの接続リクエストを拒否します。

spec.security.roles.privileges

タイプ: 配列

このロールに付与されたユーザーが持つ特権を記述する配列。

spec.security.roles.privileges.actions

タイプ: 配列

このロールを付与されたユーザーが実行できるアクションのリスト。 許容値のリストについては、Kubernetes Operator で配置する MongoDB バージョンの MongoDB マニュアルの「特権アクション」を参照してください。

spec.security.roles.privileges.resource

タイプ: コレクション

特権actionsが適用されるリソース。

このコレクションには、次のいずれかを含める必要があります。

spec.security.roles.privileges.resource.database

: string

特権actionsが適用されるデータベース。

この設定に値を指定する場合は、 spec.security.roles.privileges.resource.collectionの値も指定する必要があります。

spec.security.roles.privileges.resource.collection

: string

database権限 が適用されるactions のコレクション。

この設定に値を指定する場合は、 spec.security.roles.privileges.resource.databaseの値も指定する必要があります。

spec.security.roles.privileges.resource.cluster

タイプ: ブール値

デフォルト: False

特権actionsが MongoDB 配置のすべてのデータベースとコレクションに適用されることを示すフラグ。 省略された場合、デフォルトはfalseとなります。

true に設定されている場合、 spec.security.roles.privileges.resource.databasespec.security.roles.privileges.resource.collectionの値を指定しないでください。

次の例は、すべての設定が指定されたスタンドアロン配置のリソース仕様を示しています。

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-standalone
spec:
version: "4.2.2-ent"
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
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: "6.0.0-ent"
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
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
spec:
affinity:
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: "6.0.0-ent"
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
...

次の ステートメントセット 設定は、レプリカセットとシャーディングされたクラスターのリソースタイプにのみ適用されます。

spec.statefulSet.spec

タイプ: コレクション

ステートメントセット の仕様 MongoDB Enterprise Kubernetes OperatorMongoDB が リソース用に作成する

spec.statefulSet.spec.serviceName

: string

デフォルト: <resource_name>-svc<resource_name>-svc-external

Atlas App Services が作成または使用する Kubernetes サービスの名前 。この名前のサービスがすでに存在する場合、MongoDB Enterprise Kubernetes Operator はサービスを削除または再作成しません。 この設定により、独自のカスタム サービスを作成し、Kubernetes Operator でそれらを再利用できます。

戻る

MongoDBユーザー