この手順を使用して、マルチ Kubernetes クラスター MongoDB 配置のノード Kubernetes クラスターに新しいレプリカセットを作成します。
この手順により、ステートメントセット構成のオーバーライドなど、レプリカセット リソースのさまざまな設定を設定できます。 この手順を使用する代わりに、マルチKubernetes-クラスター クイック スタート を使用できます。これにより、デフォルト設定でマルチ Kubernetes クラスター MongoDB 配置が作成されます。
始める前に:
Kubernetes 演算子 をマルチ Kubernetes クラスター MongoDB 配置にインストールします。 「マルチ Kubernetes クラスター クイック スタート 」を参照してください。
リソースの配置MongoDBMultiCluster
このTLS-Encrypted Connectionsタブでは、次の手順を使用できます。
MongoDBMultiClusterリソースを配置MongoDBMultiClusterリソースの TLS 証明書を更新する
これらの手順では、レプリカセット内の MongoDB ホスト間、およびクライアント アプリケーションと MongoDB 配置間で、 TLSで暗号化された接続を確立します。
開始する前に、 TLS暗号化の有効な証明書が必要です。
リソースの配置MongoDBMultiCluster
リソースの TLSMongoDBMultiCluster 証明書のシークレットを作成します。
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。
ConfigMap を作成して、CA を MongoDBMultiClusterリソースにリンクします。
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>サンプル リソースをコピーして貼り付けます。
サンプル レプリカセットのYAMLファイルをコピーし、新しいテキストファイルに貼り付けます。
必要なレプリカセット構成に合わせてファイルの設定を変更します。
# 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
設定を希望する値に変更します。
キー | タイプ | 説明 | 例 |
|---|---|---|---|
string |
リソース名は 44 文字以下にする必要があります。
|
| |
string | この 形式は、 MongoDB Community Editionでは 重要:互換性のあるMongoDB Serverバージョンを選択していることを確認してください。 互換性のあるバージョンは、 MongoDBデータベースリソースが使用する基本イメージによって異なります。 MongoDB のバージョン管理の詳細については、MongoDB マニュアルの「 MongoDBのバージョン管理 」を参照してください。 |
| |
| string | MongoDB Ops Manager接続構成を含む ConfigMap の名前。 この値は、作成するリソースと同じ名前空間に存在する必要があります。 重要: Kubernetes Operator は ConfigMap への変更を追跡し、 |
|
| string |
|
|
| integer | このクラスター内のメンバーの数。 |
|
| コレクション | 任意。 マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。 | 例 を参照してください。 |
| コレクション | 任意。指定すると、 データを保存する永続ボリュームの VolumeClaimtemplates のデフォルトのストレージサイズのクラスターごとの上書きを提供します。 | 例 を参照してください。 |
string | Kubernetes 演算子が Ops Manager と通信するための Ops Manager API 認証の認証情報として 作成した シークレットの名前。 認証情報を保持するMongoDB Ops Manager Kubernetes Secretオブジェクトは、作成するリソースと同じ名前空間に存在する必要があります。 重要: Kubernetes Operator は、シークレットへの変更を追跡し、 |
| |
string | 作成する |
|
MongoDBMultiClusterリソース配置に追加で許容される設定を追加します。
また、オブジェクト仕様に任意の設定を追加することもできます。「 マルチ Kubernetes クラスター リソース仕様 」を参照してください。
レプリカセットの配置を開始します。
任意のディレクトリで、次の Kubernetes コマンドを呼び出してレプリカセットを作成します。
kubectl apply -f <replica-set-conf>.yamlマルチ Kubernetes クラスター MongoDB 配置のステータスを追跡します。
MongoDBMultiCluster リソースのステータスを確認するには、中央クラスターで次のコマンドを使用します。
kubectl get mdbmc <resource-name> -o yaml -w-w (監視)フラグが設定されている場合、構成が変更されると、ステータスフェーズがRunning状態に達するまで出力が直ちに更新されます。 リソース配置ステータスの詳細については、 「 Kubernetes 演算子のトラブルシューティング 」を参照してください。
MongoDBMultiCluster リソースの TLS 証明書を更新する
次の手順で、 TLS証明書を定期的に更新します。
MongoDBMultiClusterリソースのシークレットを更新します。
次の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 配置間の接続は暗号化されません。
リソースの配置MongoDBMultiCluster
サンプル リソースをコピーして貼り付けます。
サンプル レプリカセットのYAMLファイルをコピーし、新しいテキストファイルに貼り付けます。
必要なレプリカセット構成に合わせてファイルの設定を変更します。
# 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
設定を希望する値に変更します。
キー | タイプ | 説明 | 例 |
|---|---|---|---|
string |
リソース名は 44 文字以下にする必要があります。
|
| |
string | この 形式は、 MongoDB Community Editionでは 重要:互換性のあるMongoDB Serverバージョンを選択していることを確認してください。 互換性のあるバージョンは、 MongoDBデータベースリソースが使用する基本イメージによって異なります。 MongoDB のバージョン管理の詳細については、MongoDB マニュアルの「 MongoDBのバージョン管理 」を参照してください。 |
| |
| string | MongoDB Ops Manager接続構成を含む ConfigMap の名前。 この値は、作成するリソースと同じ名前空間に存在する必要があります。 重要: Kubernetes Operator は ConfigMap への変更を追跡し、 |
|
| string |
|
|
| integer | このクラスター内のメンバーの数。 |
|
| コレクション | 任意。 マルチ Kubernetes クラスターMongoDBデプロイ内のクラスターの各ステートメントに対して、StatusSet オーバーライドの構成を提供します。 | 例 を参照してください。 |
| コレクション | 任意。指定すると、 データを保存する永続ボリュームの VolumeClaimtemplates のデフォルトのストレージサイズのクラスターごとの上書きを提供します。 | 例 を参照してください。 |
string | Kubernetes 演算子が Ops Manager と通信するための Ops Manager API 認証の認証情報として 作成した シークレットの名前。 認証情報を保持するMongoDB Ops Manager Kubernetes Secretオブジェクトは、作成するリソースと同じ名前空間に存在する必要があります。 重要: Kubernetes Operator は、シークレットへの変更を追跡し、 |
| |
string | 作成する |
|
MongoDBMultiClusterリソース配置に追加で許容される設定を追加します。
また、オブジェクト仕様に任意の設定を追加することもできます。「 マルチ Kubernetes クラスター リソース仕様 」を参照してください。
レプリカセットの配置を開始します。
任意のディレクトリで、次の Kubernetes コマンドを呼び出してレプリカセットを作成します。
kubectl apply -f <replica-set-conf>.yamlマルチ Kubernetes クラスター MongoDB 配置のステータスを追跡します。
MongoDBMultiCluster リソースのステータスを確認するには、中央クラスターで次のコマンドを使用します。
kubectl get mdbmc <resource-name> -o yaml -w-w (監視)フラグが設定されている場合、構成が変更されると、ステータスフェーズがRunning状態に達するまで出力が直ちに更新されます。 リソース配置ステータスの詳細については、 「 Kubernetes 演算子のトラブルシューティング 」を参照してください。