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

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

項目一覧

  • MongoDBMultiClusterリソースの配置

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

この手順により、ステートメントセット構成のオーバーライドなど、レプリカセット リソースのさまざまな設定を設定できます。 この手順を使用する代わりに、 Multi-Kubernetes-Cluster クイック スタートを使用して、デフォルト設定で複数の 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コマンドを実行して、 CAMongoDBMultiClusterリソースにリンクします。 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: 6.0.0-ent
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 文字以下にする必要があります。

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

multi-replica-set

string

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

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

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

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

6.0.0-ent

spec
.opsManager
.configMapRef

string

ConfigMap MongoDB Ops Managerの名前 接続構成の場合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

コレクション

任意。

ステートフルセット の構成を提供します MongoDB のマルチ Kubernetes クラスター配置で、クラスターの各StatusSets に対して の上書きを適用します。clusterSpecListの下で個々のクラスター レベルで指定されると、複数の Kubernetes クラスター MongoDB 配置全体の Atlas App Services のグローバル構成が上書きされます。 「 マルチKubernetes-クラスター リソース仕様 」と「 StatefunctionSet v1 アプリ Kubernetes ドキュメント 」を参照してください。

例 を参照してください。

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

コレクション

任意。 指定すると、 VolumeClaim テンプレート のデフォルトのストレージ サイズのクラスターごとの上書きが行われます。 、データを保存する永続ボリュームの場合

例 を参照してください。

string

Operator が と通信するための MongoDB Ops ManagerAPI認証情報として 作成KubernetesMongoDB Ops Manager したシークレットの名前。

認証情報を保持する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 -

この手順では、レプリカセット内の MongoDB ホスト間、およびクライアント・アプリケーションと MongoDB 配置間の接続は暗号化されません。

1

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

kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAME
kubectl config set-context $(kubectl config current-context) \
--namespace=mongodb
2
  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: 6.0.0-ent
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...
3
キー
タイプ
説明

string

MongoDBMultiClusterリソースのラベル。

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

metadata.name 名前 も参照してください (Kubernetes ドキュメント)。

multi-replica-set

string

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

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

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

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

6.0.0-ent

spec
.opsManager
.configMapRef

string

ConfigMap MongoDB Ops Managerの名前 接続構成の場合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

コレクション

任意。

ステートフルセット の構成を提供します MongoDB のマルチ Kubernetes クラスター配置で、クラスターの各StatusSets に対して の上書きを適用します。clusterSpecListの下で個々のクラスター レベルで指定されると、複数の Kubernetes クラスター MongoDB 配置全体の Atlas App Services のグローバル構成が上書きされます。 「 マルチKubernetes-クラスター リソース仕様 」と「 StatefunctionSet v1 アプリ Kubernetes ドキュメント 」を参照してください。

例 を参照してください。

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

コレクション

任意。 指定すると、 VolumeClaim テンプレート のデフォルトのストレージ サイズのクラスターごとの上書きが行われます。 、データを保存する永続ボリュームの場合

例 を参照してください。

string

Operator が と通信するための MongoDB Ops ManagerAPI認証情報として 作成KubernetesMongoDB Ops Manager したシークレットの名前。

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

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

<mycredentials>

string

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

ReplicaSet

4

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

5
6

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

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

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

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

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

戻る

クイック スタート