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

マルチ Kubernetes クラスターでのレプリカセットの配置

この手順を使用して、マルチ Kubernetes クラスター MongoDB 配置のノード Kubernetes クラスターに新しいレプリカセットを作成します。

この手順により、ステートメントセット構成のオーバーライドなど、レプリカセット リソースのさまざまな設定を設定できます。 この手順を使用する代わりに、マルチKubernetes-クラスター クイック スタート を使用できます。これにより、デフォルト設定でマルチ Kubernetes クラスター MongoDB 配置が作成されます。

始める前に:

このTLS-Encrypted Connectionsタブでは、次の手順を使用できます。

  • MongoDBMultiClusterリソースを配置

  • MongoDBMultiClusterリソースの TLS 証明書を更新する

これらの手順では、レプリカセット内の MongoDB ホスト間、およびクライアント アプリケーションと MongoDB 配置間で、 TLSで暗号化された接続を確立します。

開始する前に、 TLS暗号化の有効な証明書が必要です。

1

kubectlコマンドを実行して、 MongoDBMultiClusterリソース証明書を保存する新しいシークレットを作成します。

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create secret tls <prefix>-<metadata.name>-cert \ --cert=<resource-tls-cert> \ --key=<resource-tls-key>

注意

シークレットの前に<prefix>-<metadata.name>を付ける必要があります。

例として、配置を my-deployment と呼び出し、プレフィックスを mdb に設定した場合、クライアント TLS 通信用の TLS シークレットに mdb-my-deployment-cert という名前を付ける必要があります。 また、内部クラスター認証用の TLS シークレットには名前を付ける必要があります (有効にしている場合) mdb-my-deployment-clusterfile。

2

kubectl コマンドを実行して、CA を MongoDBMultiCluster リソースにリンクします。MongoDBMultiCluster リソースに対して、常に ca-pem と呼ばなければならない CA 証明書ファイルを指定します。

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create configmap custom-ca -from-file=ca-pem=<your-custom-ca-file>
3

まだ実行していない場合は、次のコマンドを実行して、デフォルトの名前空間の中央クラスターですべてのkubectlコマンドを実行します。

kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAMEkubectl config set-context $(kubectl config current-context) \ --namespace=mongodb
4
  1. サンプル レプリカセットのYAMLファイルをコピーし、新しいテキストファイルに貼り付けます。

  2. 必要なレプリカセット構成に合わせてファイルの設定を変更します。

# This example provides statefulSet overrides per cluster. apiVersion: mongodb.com/v1kind: MongoDBMultiClustermetadata: name: multi-replica-setspec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar1 image: busybox command: [ "sleep" ] args: [ "infinity" ] # Use the following settings to override the default storage size of the "data" Persistent Volume. volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi - clusterName: cluster2.example.com members: 1 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar2 image: busybox command: [ "sleep" ] args: [ "infinity" ] volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi - clusterName: cluster3.example.com members: 1 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar3 image: busybox command: [ "sleep" ] args: [ "infinity" ] volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi ...
5
キー
タイプ
説明
例

string

MongoDBMultiClusterリソースのラベル。

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

metadata.nameKubernetesドキュメントで、「 と名前」も参照してください。

multi-replica-set

string

このMongoDBMultiClusterリソースが実行する MongoDB のバージョン。

形式は、 MongoDB Community Editionでは X.Y.Z、Enterprise エディションでは X.Y.Z-ent です。

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

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

8.0.0

spec
.opsManager
.configMapRef
.name

string

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

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

重要: Kubernetes Operator は ConfigMap への変更を追跡し、MongoDB リソースの状態を調整します。

<my-project>

spec
.clusterSpecList
.clusterName

string

MongoDBMultiClusterリソース内のクラスターの名前。

cluster1.example.com

spec
.clusterSpecList
.members

integer

このクラスター内のメンバーの数。

2

spec
.clusterSpecList
.statefulSet
.spec

コレクション

任意。

マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。clusterSpecList の下で個々のクラスター レベルで指定すると、複数の Kubernetes クラスターMongoDBデプロイのステートメントを使用するグローバル構成が上書きされます。「 マルチKubernetes-クラスター リソース仕様 」と「 StateftSet v1 アプリKubernetesドキュメント 」を参照してください。

例 を参照してください。

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

コレクション

任意。指定すると、 データを保存する永続ボリュームの VolumeClaimtemplates のデフォルトのストレージサイズのクラスターごとの上書きを提供します。

例 を参照してください。

string

Kubernetes 演算子が Ops Manager と通信するための Ops Manager API 認証の認証情報として 作成した シークレットの名前。

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

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

<mycredentials>

string

作成するMongoDBリソースのタイプ。 このフィールドでサポートされている値はReplicaSetのみです。 「制限 」を参照してください。

ReplicaSet

6

また、オブジェクト仕様に任意の設定を追加することもできます。「 マルチ Kubernetes クラスター リソース仕様 」を参照してください。

7
8

任意のディレクトリで、次の Kubernetes コマンドを呼び出してレプリカセットを作成します。

kubectl apply -f <replica-set-conf>.yaml
9

MongoDBMultiCluster リソースのステータスを確認するには、中央クラスターで次のコマンドを使用します。

kubectl get mdbmc <resource-name> -o yaml -w

-w (監視)フラグが設定されている場合、構成が変更されると、ステータスフェーズがRunning状態に達するまで出力が直ちに更新されます。 リソース配置ステータスの詳細については、 「 Kubernetes 演算子のトラブルシューティング 」を参照してください。

次の手順で、 TLS証明書を定期的に更新します。

1

次のkubectl コマンドを実行して、MongoDBMultiCluster リソースの証明書を保存する既存のシークレットを更新します。

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \--namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-cert \--cert=<resource-tls-cert> \--key=<resource-tls-key> \--dry-run=client \-o yaml |kubectl apply -f -