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

MongoDB Ops Managerのリソースの配置

Operator を使用して、 MongoDB Ops Managerを コンテナのリソースとして配置できます。KubernetesKubernetes

次の考慮事項が適用されます。

MongoDB Ops Manager配置を構成するときは、接続をHTTPS 経由で実行するか、 HTTP経由で実行するかを選択する必要があります。

次のHTTPS手順を参照してください。

  • アプリケーションとの間で、 TLSMongoDB Ops Manager で暗号化された接続を確立します。

  • アプリケーション データベースのレプリカセット メンバー間でTLS暗号化された接続を確立します。

  • TLS暗号化の有効な証明書が必要です。

次のHTTP手順を参照してください。

  • MongoDB Ops Managerアプリケーションとの間の接続を暗号化しません。

  • アプリケーション データベースのレプリカセット ノード間の接続を暗号化しません。

  • セットアップ必要なセットアップの数が少なくなります。

HTTPS 経由で実行する場合、Ops Manager はデフォルトでポート 8443 で実行されます。

TLSを使用して MongoDB Ops Manager とアプリケーション データベースの接続を暗号化するかどうかに応じて、適切なタブを選択します。

  • Create one TLS certificate for the Application Database's replica set.

    このTLS証明書には次の属性が必要です。

    DNS 名

    アプリケーションデータベース レプリカセットのノードをホストする各 Pod の SAN またはサブジェクト名を追加することを確認します。各ポッドのSANは次の形式を使用する必要があります。

    <opsmgr-metadata.name>-db-<index>.<opsmgr-metadata.name>-db-svc.<namespace>.svc.cluster.local

    キーの用途

    Ensure that the TLS certificates include the following key-usages (5280):

    • "server auth"

    • "client auth"

重要

Kubernetes 演算子は kubernetes.io/tls を使用します。MongoDB Ops Manager および MongoDB リソース用の TLS 証明書および秘密キーを保存する秘密。Kubernetes 演算子1 17バージョン..0 以降、Kubernetes 演算子 は Opaque secrets. として保存されている連結された PEM ファイルをサポートしません。

この手順は、単一のKubernetesクラスターにMongoDB Ops Managerインスタンスを配置する場合、およびマルチクラスター配置の中央クラスターにMongoDB Ops Managerを配置する場合に適用されます。複数のKubernetesクラスターに複数のMongoDB Ops Managerインスタンスを配置する場合は、「複数のMongoDB Ops Manager Kubernetesクラスターでのリソースの配置」を参照してください。

次の手順に従って、 MongoDB Ops ManagerリソースをHTTPS 経由で実行し、 TLSを使用してアプリケーション データベースを保護します。

1

まだ作成していない場合は、次のコマンドを実行して、作成した名前空間ですべてのkubectlコマンドを実行します。

注意

MongoDB Ops Manager リソースを複数の Kubernetes クラスター MongoDB 配置に配置している場合、次の手順に従います。

  • context を セントラルクラスター の名前に設定します(例: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME")。

  • MongoDB のマルチ配置に使用したのと同じスコープ(例: kubectl config --namespace "mongodb"に--namespaceを設定します。

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

HashiCorp Vault を シークレットストレージツール として使用している場合は、代わりに Vault シークレットを作成 できます。

シークレット ストレージのオプションの詳細については、「シークレット ストレージの構成 」を参照してください。

  1. TLS 証明書と秘密キーが用意できたら、次のコマンドを実行して シークレット を作成します MongoDB Ops Manager の TLS 証明書を保存する MongoDB Ops Manager の

    kubectl create secret tls <prefix>-<metadata.name>-cert \
    --cert=<om-tls-cert> \
    --key=<om-tls-key>
  2. 以下のコマンドを実行して、新しい シークレット を作成します アプリケーション データベースの TLS 証明書を保存する:

    kubectl create secret tls <prefix>-<metadata.name>-db-cert \
    --cert=<appdb-tls-cert> \
    --key=<appdb-tls-key>
3

MongoDB Ops Manager TLS証明書がカスタムCAによって署名されている場合、 CA証明書には、 MongoDB Ops ManagerバックアップデーモンがインターネットからMongoDBバイナリをダウンロードできるようにする追加の証明書も含まれている必要があります。 TLS 証明書を作成するには、 ConfigMap を作成します CA 証明書を保持するには、以下が必要です。

重要

Kubernetes Operator では、ConfigMap 内のMongoDB Ops Manager証明書の名前が mms-ca.crt である必要があります。

  1. downloads.mongodb.com から Ops Manager 用の全体の TLS 証明書チェーンを入手します。次の openssl コマンドは、チェーン内の証明書を現在の作業ディレクトリに .crt 形式で出力します。

    openssl s_client -showcerts -verify 2 \
    -connect downloads.mongodb.com:443 -servername downloads.mongodb.com < /dev/null \
    | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}'
  2. 前のステップで取得した からの TLS 証明書チェーン全体と、MongoDB Ops Manager 用のあなたの CA の証明書ファイルを連結します:downloads.mongodb.com

    cat <custom_ca_cert.pem> cert2.crt cert3.crt cert4.crt >> mms-ca.crt

    注意

    • プレースホルダー <custom_ca_cert.pem> を カスタム CA 証明書 PEMファイルに置き換えます。

    • MongoDBのサーバー証明書は含めることができないため、cert1.crtファイルを含めないでください。

  3. MongoDB Ops Managerの ConfigMap を作成します。

    kubectl create configmap om-http-cert-ca --from-file="mms-ca.crt"
4

MongoDB Ops Managerとアプリケーション データベースの構成に合わせて設定を変更します。

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the Kubernetes secret
11 # for the admin user
12
13 externalConnectivity:
14 type: LoadBalancer
15 security:
16 certsSecretPrefix: <prefix> # Required. Text to prefix
17 # the name of the secret that contains
18 # Ops Manager's TLS certificate.
19 tls:
20 ca: "om-http-cert-ca" # Optional. Name of the ConfigMap file
21 # containing the certificate authority that
22 # signs the certificates used by the Ops
23 # Manager custom resource.
24
25 applicationDatabase:
26 topology: SingleCluster
27 members: 3
28 version: "8.0.0-ubi8"
29 security:
30 certsSecretPrefix: <prefix> # Required. Text to prefix to the
31 # name of the secret that contains the Application
32 # Database's TLS certificate. Name the secret
33 # <prefix>-<metadata.name>-db-cert.
34 tls:
35 ca: "appdb-ca" # Optional, unless enabling TLS for |mms|.
36 # Name of the ConfigMap file
37 # containing the certicate authority that
38 # signs the certificates used by the
39 # application database.
40
41...
5
6
キー
タイプ
説明
例

string

このKubernetes MongoDB Ops Managerオブジェクトの名前。

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

metadata.name名前については、 とKubernetes のドキュメントも参照してください。

om

数値

並行して実行するMongoDB Ops Managerインスタンスの数。

有効な最小値は1です。 spec.topology設定でMultiClusterを指定している場合、このフィールドは無視されます。

1

string

インストールするMongoDB Ops Managerのバージョン。

形式はXYZ にする必要があります。利用可能な Ops Manager のバージョンを確認するには、コンテナレジストリを表示します。

8.0.0

string

MongoDB Ops Manager 管理者ユーザー用に作成したシークレットの名前。MongoDB Ops Managerリソースと同じ名前空間を使用するようにシークレットを構成します。

om-admin-secret

spec
.security
.certsSecretPrefix

string

必須。

MongoDB Ops Manager TLS証明書を含むシークレットの名前のプレフィックスに渡すテキスト。

om-prod

spec
.security
.tls
.ca

string

ConfigMap の名前 は、カスタム CA を使用して署名された MongoDB Ops Manager TLS 証明書を検証するために作成されました。このフィールドは、カスタム CA を使用して MongoDB Ops Manager TLS 証明書に署名している場合は必須です。

om-http-cert-ca

spec
.externalConnectivity
.type

string

MongoDB Ops Manager をKubernetesの外部で公開するKubernetesサービス ServiceType 。spec.externalConnectivity Kubernetes Operator で外部トラフィックをMongoDB Ops ManagerアプリケーションにルーティングするためのKubernetesサービスを作成 したくない 場合は、設定とその子を除外します。

LoadBalancer

spec
.applicationDatabase
.members

integer

MongoDB Ops Manager Application Databaseレプリカセットのノードの数。

3

spec
.applicationDatabase
.version

string

必須。

Version of MongoDB that the Ops Manager Application Database should run.

The format should be X.Y.Z-ubi8 for the Enterprise edition and X.Y.Z for the Community edition. Do not add the -ubi8 tag suffix to the Community edition image because the Kubernetes Operator adds the tag suffix automatically.

重要:互換性のあるMongoDB Serverバージョンを選択していることを確認してください。 互換性のあるバージョンは、 MongoDBデータベースリソースが使用する基本イメージによって異なります。

MongoDB のバージョン管理の詳細については、MongoDB マニュアルの「 MongoDBのバージョン管理 」を参照してください。

spec
.applicationDatabase
.topology

string

任意。

アプリケーション データベースの Kubernetes 配置のタイプ。 省略した場合、デフォルトはSingleClusterです。

MultiClusterを指定すると、Kubernetes 演算子 は、指定されている場合、spec.applicationDatabase.membersフィールドに設定した値を無視します。代わりに、clusterSpecListを指定し、アプリケーションデータベースを配置する各選択済みKubernetesclusterName(ノードクラスターごと)と、各Kubernetesクラスター内のmembers(MongoDBノード)の数を含める必要があります。

CRDclusterSpecList のtopology と の設定を変更して、単一の インスタンスを複数のMongoDB Ops Manager Kubernetes クラスターの 配置インスタンスに変換することはできません。MongoDB

リソース仕様の例も参照してください。

MultiCluster

spec
.applicationDatabase
.security
.certsSecretPrefix

string

必須。

アプリケーション データベースのTLS証明書を含むシークレットの名前のプレフィックスに設定するテキスト。

appdb-prod

spec
.applicationDatabase
.security
.tls
.ca

string

ConfigMap の名前 は、カスタム CA を使用して署名されたアプリケーション データベース TLS 証明書を検証するために作成されました。 このフィールドは、カスタム CA を使用してアプリケーションデータベース TLS 証明書に署名している場合は必須です。

ca

Kubernetes 演算子は、CA を、spec.applicationDatabase.security.tls.ca 設定を使用して追加し、MongoDB Ops Manager とアプリケーションデータベース Pod の両方にマウントします。

7

バックアップを構成するには、バックアップを有効にしてから次の操作を行う必要があります。

  • S3 読み取りまたはブロックストアを構成するには、 を選択します。 S3 読み取りとブロックストアの両方を配置する場合、Ops Manager はバックアップに使用するものをランダムに選択します。

  • oplog 保存 (する)または S3 oplog 保存 (する)の設定を選択します。oplog ストアと S3 oplog ストアの両方を配置する場合、MongoDB Ops Manager は oplog バックアップに使用するそのいずれかをランダムに選択します。

キー
タイプ
説明
例

spec
.backup
.enabled

ブール値

Flag that indicates that Backup is enabled. ヘッドデータベース、oplog ストア、スナップショット ストアの設定を構成するには、 spec.backup.enabled: trueを指定する必要があります。

true

spec
.backup
.headDB

コレクション

A collection of configuration settings for the head database. For descriptions of the individual settings in the collection, see spec.backup.headDB.

spec
.backup
.opLogStores
.name

string

oplog ストアの名前。

oplog1

spec
.backup
.s3OpLogStores
.name

string

S3 oplog ストアの名前。

my-s3-oplog-store

spec
.backup
.opLogStores
.mongodbResourceRef
.name

string

oplog ストアのMongoDBリソースまたはMongoDBMultiClusterリソースの名前。 リソースのmetadata.nameはこの名前と一致する必要があります。

my-oplog-db

spec
.backup
.s3OpLogStores
.mongodbResourceRef
.name

string

S3 oplog 保存 (する)の MongoDB リソースまたは MongoDBMultiCluster リソースの名前。リソースの metadata.name はこの名前と一致する必要があります。

my-s3-oplog-db

You must also configure an S3 snapshot store or a blockstore.

If you deploy both an S3 snapshot store and a blockstore, Ops Manager randomly choses one to use for Backup.

スナップショット保存を構成するには、次の設定を構成します。

キー
タイプ
説明
例

spec
.backup
.s3Stores
.name

string

S3 読み取りの名前。

s3store1

spec
.backup
.s3Stores
.s3SecretRef
.name

string

accessKeyフィールドとsecretKey フィールドを含むシークレットの名前。バックアップデーモンサービスは、これらのフィールドの値を認証情報として使用して、 S3 または S3 と互換性のあるバケットにアクセスします。

my-s3-credentials

spec
.backup
.s3Stores
.s3BucketEndpoint

string

データベースのバックアップ スナップショットを保存する S3 または S3 互換バケットのURL 。

s3.us-east-1.amazonaws.com

spec
.backup
.s3Stores
.s3BucketName

string

データベースのバックアップ スナップショットを保存する S3 または S3 と互換性のあるバケットの名前。

my-bucket

ブロックストアを構成するには、次の設定を構成します。

キー
タイプ
説明
例

spec
.backup
.blockStores
.name

string

ブロックストアの名前。

blockStore1

spec
.backup
.blockStores
.mongodbResourceRef
.name

string

ブロックストア用に作成するMongoDBリソースの名前。 このデータベース リソースは、 MongoDB Ops Managerリソースと同じ名前空間に配置する必要があります。

my-mongodb-blockstore

8

配置に適用するバックアップのオプション設定をオブジェクト仕様ファイルに追加します。例、各タイプのバックアップストアのタイプやMongoDB Ops Managerバックアップデーモンプロセスの場合は、特定のバックアップストアまたはバックアップデーモンプロセスを特定のプロジェクトに関連付けるためにラベルを割り当てることができます。 Ops Manager リソースの spec.backup.[*].assignmentLabels 要素を使用します。

9

配置に適用するオプションの設定をオブジェクト仕様ファイルに追加します。

10
11

MongoDB Ops Managerのリソース定義のファイル名に対して次の kubectl コマンドを実行します。

kubectl apply -f <opsmgr-resource>.yaml

注意

MongoDB Ops Manager リソースを複数の Kubernetes クラスター MongoDB 配置に配置している場合は、次を実行します。

kubectl apply \
--context "$MDB_CENTRAL_CLUSTER_FULL_NAME" \
--namespace "mongodb"
-f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.5.0/public/samples/ops-manager/ops-manager-external.yaml
12

MongoDB Ops Manager リソースのステータスを確認するには、次のコマンドを呼び出します。

kubectl get om -o yaml -w

このコマンドは、リソースの配置中にstatusフィールドの下に次のような出力を返します。

status:
applicationDatabase:
lastTransition: "2022-04-01T09:49:22Z"
message: AppDB Statefulset is not ready yet
phase: Pending
type: ""
version: ""
backup:
phase: ""
opsManager:
phase: ""

Kubernetes Operator は、次の順序でリソースを調整します。

  1. アプリケーション データベース。

  2. Ops Manager:

  3. バックアップ。

Kubernetes 演算子 は、前のリソースがRunningフェーズに入るまで、リソースを調整 しません 。

MongoDB Ops Managerリソースが Pending フェーズを完了すると、バックアップを有効にしている場合、コマンドは status フィールドの下に次のような出力を返します。

status:
applicationDatabase:
lastTransition: "2022-04-01T09:50:20Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T09:57:42Z"
message: The MongoDB object <namespace>/<oplogresourcename>
doesn't exist
phase: Pending
opsManager:
lastTransition: "2023-04-01T09:57:40Z"
phase: Running
replicas: 1
url: https://om-svc.cloudqa.svc.cluster.local:8443
version: "8.0.0"

バックアップ データベースを構成するまで、バックアップはPending状態のままになります。

Tip

[ status.opsManager.urlフィールドにはリソースの 接続URLが記載されます。 URLMongoDB Ops Managerこの を使用すると、Kubernetes クラスター内から にアクセスしたり 、ConfigMap を使用してプロジェクトを作成したりできます。

リソースがPendingフェーズを完了すると、コマンドはstatusフィールドの下に次のような出力を返します。

status:
applicationDatabase:
lastTransition: "2022-12-06T18:23:22Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T18:23:26Z"
message: The MongoDB object namespace/oplogdbname doesn't exist
phase: Pending
url: https://om-svc.dev.svc.cluster.local:8443
version: ""

バックアップ データベースを構成するまで、バックアップはPending状態のままになります。

Tip

[ status.opsManager.urlフィールドにはリソースの 接続URLが記載されます。 URLMongoDB Ops Managerこの を使用すると、Kubernetes クラスター内から にアクセスしたり 、ConfigMap を使用してプロジェクトを作成したりできます。

13

MongoDB Ops ManagerKubernetes実行する手順は、 の アプリケーションへのトラフィックをルーティングする方法によって異なります。Kubernetes Operator を構成してKubernetesサービスを作成した場合、またはKubernetesサービスを手動で作成した場合は、次のいずれかの方法を使用してMongoDB Ops Managerアプリケーションにアクセスします。

  1. クラウドプロバイダーにクエリを実行して、ロード バランサー サービスのFQDNを取得します。 詳しくは、クラウドプロバイダーのドキュメントを参照してください。

  2. ブラウザ ウィンドウを開き、ロード バランサー サービスのFQDNとポート番号を使用して MongoDB Ops Manager アプリケーションに移動します。

    https://ops.example.com:8443

サードパーティのサービスを使用してMongoDB Ops Managerアプリケーションにアクセスする方法については、ソリューションのドキュメントを参照してください。

14

認証情報を構成するには、 MongoDB Ops Manager組織を作成 し、 プログラムAPIキーを生成 して、 シークレット を作成する必要があります。これらのアクティビティは、Kubernetes Operator の認証情報の作成 ページの前提条件と手順に従います。

15

プロジェクトを作成するには、「 ConfigMap を使用してMongoDBデプロイごとに 1 つのプロジェクトを作成 」ページの前提条件と手順に従います。

プロジェクト ConfigMap で次のフィールドを設定します。

  • ConfigMap で MongoDB Ops Manager アプリケーションのURLにdata.baseUrlを設定します。 このURLを見つけるには、次のコマンドを呼び出します。

    kubectl get om -o yaml -w

    このコマンドは、次の例のように、 status.opsManager.urlフィールドに MongoDB Ops Manager アプリケーションの URL を返します。

    status:
    applicationDatabase:
    lastTransition: "2022-12-06T18:23:22Z"
    members: 3
    phase: Running
    type: ReplicaSet
    version: "8.0.0-ubi8"
    opsManager:
    lastTransition: "2022-12-06T18:23:26Z"
    message: The MongoDB object namespace/oplogdbname doesn't exist
    phase: Pending
    url: https://om-svc.dev.svc.cluster.local:8443
    version: ""

    重要

    MongoDB Ops ManagerKubernetesOperatorMongoDB Ops Manager MongoDBを使用してKubernetes を配置し、data.baseUrl spec.configuration.mms.centralUrlが配置先のMongoDB Ops Manager クラスターの 外部 に配置された データベース リソースを管理する場合、 の 設定と同じ値に設定する必要があります。リソース仕様。

    詳細については、「外部 MongoDB デプロイの管理 」を参照してください。

  • Set data.sslMMSCAConfigMap to the name of your ConfigMap containing the root CA certificate used to sign the Ops Manager host's certificate. The Kubernetes Operator requires that you name this Ops Manager resource's certificate mms-ca.crt in the ConfigMap.

16

By default, Ops Manager enables Backup. Create a MongoDB database resource for the oplog and snapshot stores to complete the configuration.

  1. リソースと同じ名前空間に ストア用のMongoDB database リソースoplogMongoDB Ops Manager を配置します。

    注意

    このデータベースを 3 ノードのレプリカセットとして作成します。

    リソースのmetadata.nameと MongoDB Ops Manager リソース定義で指定したspec.backup.opLogStores.mongodbResourceRef.nameを照合します。

  2. MongoDB Ops Manager リソースと同じ名前空間に、 S3 読み取り用の MongoDB データベース リソース を配置する。

    注意

    S3読み取りをレプリカセットとして作成します。

    リソースのmetadata.nameを MongoDB Ops Manager リソース定義で指定したspec.backup.s3Stores.mongodbResourceRef.nameと照合します。

17

MongoDB Ops Manager リソースのステータスを確認するには、次のコマンドを呼び出します。

kubectl get om -o yaml -w

MongoDB Ops Managerが実行されている場合、コマンドは status フィールドの下に次のような出力を返します。

status:
applicationDatabase:
lastTransition: "2022-12-06T17:46:15Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T17:46:32Z"
phase: Running
replicas: 1
url: https://om-backup-svc.dev.svc.cluster.local:8443
version: "8.0.0"

リソースの配置ステータスの詳細については、「 Kubernetes 演算子のトラブルシューティング 」を参照してください。

このページを評価