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

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

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

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 8.0.0
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...
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

Name of the secret you created as Ops Manager API authentication credentials for the Kubernetes Operator to communicate with Ops Manager.

The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.

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

<mycredentials>

string

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

ReplicaSet

6

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

7
8

In any directory, invoke the following Kubernetes command to create your replica set:

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 -