制限
マルチ Kubernetes クラスター MongoDB 配置には次の制限があります。
MongoDB Ops Managerバージョン 5.0.7 以降を使用します。
シークレットストレージツールにはKubernetesシークレットのみを使用します。HashiCorp Vault シークレットストレージツールはサポートされていません。
同じKubernetes 演算子インスタンスが MongoDBOpsManager と MongoDB カスタム リソースの両方を管理していない配置の場合は、MongoDB Ops Manager で KMIP バックアップ暗号化クライアント設定を手動で構成する必要があります。学ぶには、KMIP バックアップ暗号化の手動構成 を参照してください。
MongoDBMultiClusterリソースに ServiceMonitor を追加しないでください。Kubernetes Operator は Prometheus との統合をサポートしていません。新しいマルチ Kubernetes クラスター MongoDB 配置を作成し、 MongoDB サポートに連絡して、既存の Kubernetes 配置からマルチ Kubernetes クラスター MongoDB 配置にデータを移行してください。 既存の単一 Kubernetes クラスターの配置を新しい Kubernetes クラスターに拡張することはできません。
マルチクラスター配置機能
このセクションでは、Kubernetes Operator を使用して配置された MongoDB リソースの単一クラスターの手順と同じ手順を使用して構成できるマルチ Kubernetes クラスター MongoDB 配置機能について説明します。 その他のマルチ Kubernetes クラスター MongoDB 配置機能には、このガイドに独自のドキュメントがあります。
DNS レコードによる接続
To connect to the multi-Kubernetes cluster MongoDB deployment database as a user, you can use the connectionString.standardSrv: DNS seed list connection string. This string is included in the secret that the Kubernetes Operator creates for your multi-Kubernetes cluster MongoDB deployment. Use the same procedure for connecting to the multi-Kubernetes cluster MongoDB deployment as for single clusters deployed with Kubernetes Operator. See Connect to a MongoDB Database Resource from Inside Kubernetes and select the tab Using the Kubernetes Secret.
データベースユーザーのセキュリティの管理
データベースユーザーのセキュリティを管理するには、次の方法を使用します。
これらの手順は、次の例外を除いて、Kubernetes Operator で配置された単一クラスターの手順と同じです。
手順はレプリカセットにのみ適用されます。 マルチ Kubernetes クラスターMongoDB配置では、シャーディングされたクラスターの作成はサポートされていません。
mongodbResourceRefで、マルチ Kubernetes クラスター MongoDB 配置レプリカセットの名前を指定しますname: "<my-multi-cluster-replica-set>"。
単一クラスターのMongoDB Ops Managerリソースのクエリ可能なバックアップの設定
Operator MongoDB Ops Managerを使用して単一のKubernetes クラスターに インスタンスを配置すると、演算子をホストするクラスターによってKubernetesMongoDB Ops Manager もホストされる可能性があります。この場合は、 リソースの クエリ可能なバックアップを構成 MongoDB Ops Managerできます。クエリ可能なバックアップは、複数のMongoDB Ops Manager Kubernetesクラスターでの リソースの配置ではサポートされていません。
配置アーキテクチャと図
サービス メトリクスの有無にかかわらず、複数の Kubernetes クラスター MongoDB 配置を作成できます。 詳細については、「外部接続のプラン:サービス メッシュを使用する必要がありますか? 」を参照してください。
次の両方の図では、 MongoDB Controls for Kubernetes Operator がこれらのアクションを実行しています。
中央クラスターで
MongoDBMultiClusterリソース仕様の作成を監視します。マウントされた
kubeconfigファイルを使用して、ノードクラスターと通信します。MongoDB クラスター内のレプリカセット ノードの数に対応する各ノード クラスターに、ConfigMaps、Secrets、Services、StatulSet Kubernetes オブジェクトなどの必要なリソースを作成します。
対応する
MongoDBMultiClusterリソース指定を使用して各 MongoDB レプリカセットを配置するためのクラスターを識別し、MongoDB レプリカセットを配置します。CentralClusterMemberClusterイベントと イベントを監視します。作成したリソースを調整して、マルチ Kubernetes クラスター MongoDB 配置が希望の状態であることを確認します。
MongoDB Controls for Kubernetes Operator を使用する複数の Kubernetes クラスターMongoDBデプロイは、 Kubernetesの 1 つの中央クラスターと 1 つ以上のノード クラスターで構成されます。
中央クラスターには、次のロールがあります。
Kubernetes Operator 用のMongoDB Controls のホスト
MongoDB のマルチ Kubernetes クラスター配置のコントロール プレーンとして機能
MongoDB レプリカセットの
MongoDBMultiClusterリソース仕様をホストしますKubernetes 演算子とともに Ops Manager を配置する場合は、Ops Manager のホストも可能
MongoDB レプリカセット のノードもホストできます
注意
中央クラスターは、演算子クラスターとも呼ばれます。
ノード クラスターには、次のロールがあります。
MongoDBレプリカセットをホストする
Kubernetes 演算子とともに Ops Manager を配置する場合は、Ops Manager のホストも可能
中央クラスターに障害が発生した場合は、このクラスターへのアクセスを復元するまで、または Kubernetes Operator を使用可能な別の Kubernetes クラスターに再配置するまで、Kubernetes Operator を使用して配置を変更することはできません。 詳細については、「障害復旧 」を参照してください。
図: サービス メッシュを使用したマルチ Kubernetes クラスターの配置
次の図は、リージョンとアベイラビリティーゾーンにわたるマルチ Kubernetes クラスター MongoDB 配置の高レベルのアーキテクチャを示しています。 この配置では、 Istio などのサービス キャッシュが使用されます。 サービス メトリクス:
さまざまな Kubernetes ノード クラスターに配置された MongoDB ノードの検出を管理します。
レプリカセット メンバー間の通信を処理します。
アプリケーションは、次のようなサービス キャッシュ内の任意のノード クラスターでホストできます。
Kubernetes Operator で配置したクラスター以外の Kubernetes クラスター、または
MongoDB のマルチ Kubernetes クラスター配置のノードクラスター上。
図: サービス メッシュを使用しないマルチ Kubernetes クラスター配置
次の図は、リージョンとアベイラビリティーゾーンにわたるマルチ Kubernetes クラスター MongoDB 配置の高レベルのアーキテクチャを示しています。 この配置では、Ped と MongoDB インスタンスをホストする Kubernetes クラスター間の接続については、サービス キャッシュに依存しません。
個別の Kubernetes クラスターのポッドでホストされている MongoDB レプリカセット ノード間の外部通信を処理するには、外部ドメインと DNS ゾーンを使用します。
アプリケーションは、ノード クラスターのいずれかでホストできます。