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

マルチクラスター アーキテクチャ

Kubernetes Operator は、複数の Kubernetes クラスターにわたって MongoDB データベース リソースと MongoDB Ops Manager リソースの両方を配置することをサポートしています。これにより、地理的な多重化、障害復旧機能、および固有の回復力が向上します。

重要

既存の MongoDB Ops Manager 配置を単一クラスタートポロジーから複数クラスタートポロジーに変換することはできません。単一クラスターモードで開始する場合は、一からやり直して再配置する必要があります。初期配置の前にトポロジーを計画します。

Kubernetes 演算子を使用して MongoDB リソースを配置するモードは、次の設定で制御できます。

  • spec.topology — MongoDB Ops Managerアプリケーションのモードを制御します。

  • spec.applicationDatabase.topology — アプリケーションデータベースのモードを制御します。

spec.topologyとspec.applicationDatabase.topologyの両方をMultiClusterに設定すると、次の例に示すように、MongoDB Ops Managerリソースとそのアプリケーションデータベースのマルチクラスターモードが有効になります。

spec:
topology: MultiCluster
applicationDatabase:
topology: MultiCluster

マルチクラスターモードでは、単一のノードクラスターから開始し、必要に応じて増やすことができます。具体的な説明は以下の通りです。

  • 単一ノード クラスターの開始: 配置は、1 つのノード クラスターで開始できます。

  • 最小アプリケーションデータベースレプリカセット: 最小 3 ノードのアプリケーションデータベースレプリカセットは単一ノードクラスターで実行でき、後でクラスター間で拡張できます。

  • 単一アプリケーションインスタンス: 単一の Ops Managerアプリケーションインスタンスは1つのクラスターで実行するでき、後で追加のクラスターを追加できます。

単一クラスター モード (デフォルト)では、トポロジ設定を省略するか、SingleClusterに設定します。

マルチクラスター配置には次の制限が適用されます。

  • MongoDB Ops Managerバージョン 5.0.7 以降を使用します。

  • シークレットのストレージには、シークレットのみを使用します。HashiCorp Vault はサポートされていません。

  • Kubernetes Operator が MongoDBOpsManager リソースと MongoDB リソースの両方を管理しない配置の場合は、MongoDB Ops Manager で KMIP バックアップ暗号化設定を手動で構成する必要があります。

  • MongoDBMultiCluster リソースに ServiceMonitor を追加しないでください。Prometheus 統合はサポートされていません。

  • 既存の単一クラスター MongoDB リソースをマルチクラスター リソースに移行することはできません。

機能または要件
シングルクラスター
マルチクラスター

演算子は、MongoDB Ops Managerおよびアプリケーションデータベースと同じクラスターにある必要があります

はい

No

Ops Manager およびアプリケーションデータベースクラスターに必要なサービスメッシュ

No

はい

HashiCorp Vault のサポート

はい

No

すべてのバックアップ メカニズムがサポートされています

はい

いいえ。S3互換のoplog/スナップショットのみ。

KMIP暗号化

はい

制限付き

サービスメッシュの有無にかかわらず、複数のクラスターで MongoDB を配置できます。

いずれの場合も、Kubernetes 演算子は、

  • 中央クラスター上の MongoDBMultiCluster 仕様を監視します。

  • マウントされたkubeconfigを使用してノードクラスターと通信します。

  • 各ノードクラスターに ConfigMaps、Secrets、Services、および StatefulSets を作成します。

  • MongoDB レプリカセットのノードを適切なクラスターに配置します。

  • 中央クラスターとノードクラスターのイベントを監視します。

  • リソースを調整して、期待される状態を確認します。

MongoDB Controls for Kubernetes Operator を使用する複数の Kubernetes クラスターMongoDBデプロイは、 Kubernetesの 1 つの中央クラスターと 1 つ以上のノード クラスターで構成されます。

  • 中央クラスターには、次のロールがあります。

    • Kubernetes Operator 用のMongoDB Controls のホスト

    • MongoDB のマルチ Kubernetes クラスター配置のコントロール プレーンとして機能

    • MongoDB レプリカセットのMongoDBMultiClusterリソース仕様をホストします

    • を 演算子とともに配置する場合、 をホストしますMongoDB Ops ManagerMongoDB Ops ManagerKubernetes

    • MongoDB レプリカセット のノードもホストできます

    注意

    中央クラスターは、演算子クラスターとも呼ばれます。

  • メンバークラスターは MongoDB レプリカセットをホストします。

注意

中央クラスターが失敗した場合、アクセスを復元するか、Kubernetes 演算子を別のクラスターに再配置するまで、Kubernetes 演算子を使用して配置を変更することはできません。障害復旧を参照してください。

サービス メッシュの使用

サービスメッシュは、クラスター間の MongoDB ノードの検出を管理し、ノード間の通信を取り扱います。次の図は、サービスメッシュを使用したマルチクラスタ配置を示しています。

サービス メッシュを使用したマルチクラスター配置を示す図
クリックして拡大します

サービス メッシュなし

外部ドメインと DNS ゾーンは、クラスター間の通信を取り扱います。外部ドメインと DNS ゾーンによる外部接続の有効化を参照してください。次の図は、サービス メッシュを使用しないマルチクラスター配置を示しています。

サービス メッシュを使用しないマルチクラスター配置を示す図
クリックして拡大します

次の図は、複数の Kubernetes クラスターに配置された MongoDB Ops Manager アプリケーション、アプリケーションデータベース、バックアップデーモンを示しています。

マルチクラスター MongoDB Ops Manager 配置を示す図

複数のクラスターでの Ops Manager 配置の主な要素:

  1. 中央クラスター(例:ノードクラスター 0)は、すべてのノードクラスターを管理するために使用される kubeconfig シークレット (mongodb-enterprise-operator-multi-cluster-kubeconfig) とクラスターマッピング ConfigMap を保存します。

  2. クラスターマッピング ConfigMaps は、クラスター名とインデックスの間の関係を追跡します。

    • <om_resource_name>-cluster-mapping — spec.clusterSpecList エントリをクラスター インデックスにマップします。

    • <om_resource_name>-db-cluster-mapping — spec.applicationDatabase.clusterSpecList エントリをクラスター インデックスにマップします。

    • <om_resource_name>-db-member-spec — 障害復旧のためにクラスターごとのレプリカ数を記録します。

  3. アプリケーション StatefulSets は、各クラスターで <om_resource_name>-<cluster_index> と呼ばれます。演算子は、すべてのローカル Pod を含む ClusterIP サービス (<om_resource_name>-svc)と、外部アクセス用の任意の LoadBalancer サービス (<om_resource_name>-svc-ext)を作成します。

  4. アプリケーションデータベース StatefulSets の名前は <om_resource_name>-db-<cluster_index> です。ポッドごとのサービス (<om_resource_name>-db-<cluster_index>-<pod_index>-svc) により、サービス メッシュ全体で個別の mongod のアドレス指定が可能になります。

  5. バックアップデーモン StatefulSets は <om_resource_name>-backup-daemon-<cluster_index> と呼ばれ、spec.backup.enabled が true の場合に作成されます。

次の表は、マルチクラスター配置で MongoDB Ops Manager アプリケーションに接続するクライアントとサービスの種類と、それらが使用する URL を説明します。

オリジン
目的
URL

Kubernetes 演算子

Ops Managerを構成し、モニタリングを有効にします

デフォルト FQDN <om_resource_name>-svc.<namespace>.svc.cluster.local または spec.opsManagerURL

Kubernetes 演算子

特定の MongoDB 配置を構成します

アプリケーションデータベース内のMongoDB Agent

MongoDB Ops Managerからオートメーション構成を受信します

ヘッドレス モード(MongoDB Ops Manager の接続は不要)

アプリケーションデータベースのモニタリングエージェント

モニタリング データを MongoDB Ops Manager に送信する

デフォルトの FQDN または spec.opsManagerURL

MongoDBリソースの MongoDB Agent

バックアップと復元の指示を含むオートメーション構成を MongoDB Ops Manager から受信する

プロジェクト ConfigMap

user

MongoDB Ops Manager UI または API にアクセスします

外部ドメインを介して spec.externalConnectivity

複数のクラスターでの Ops Manager 配置の場合は、アプリケーションデータベースと Ops Manager アプリケーションをホストする Kubernetes クラスターを同じサービス メッシュに追加します。これにより、次のことが可能になります。

  • クラスター間の配置されたコンポーネント間のネットワーク接続。

  • Pod ごとのサービス FQDN のクロスクラスター DNS 解決。

さらに、中央クラスターを同じサービスメッシュに追加することもお勧めします。これにより、MongoDB Ops Managerアプリケーションとアプリケーションデータベースのインスタンスを直接ホストすることができるようになります。

次のクラスターのサービス メッシュを構成します。

  • 中央クラスター(Kubernetes 演算子をインストールする場所)

  • MongoDB Ops Manager アプリケーション インスタンスをホストするすべてのノード Kubernetes クラスター

  • アプリケーションデータベースインスタンスをホストするすべてのノードKubernetesクラスター

サービス メッシュにより、各 MongoDB Ops Manager インスタンスは、クラスター間でもすべてのアプリケーションデータベース インスタンスに接続できます。配置後、各 MongoDB Ops Manager API エンドポイントは、すべてのアプリケーションデータベース ノードに直接接続できる必要があります。

For multi-cluster Ops Manager deployments, each cluster can expose its Ops Manager Application Pods individually using a LoadBalancer-type service. Create this service using spec.externalConnectivity and point an external domain to its external IP address. To learn more about configuring load balancing in multi-cluster deployments, see Service Mesh Requirements for Multi-Cluster Ops Manager Deployments.

Kubernetes Operator はクロスクラスターロードバランシングをネイティブでサポートしていないため、外部でロードバランシングを構成する必要があります。Ops Manager 配置のクロスクラスターロードバランシングを有効にするためのアプローチには、次のものがあります。

  • 外部ロード バランサー: MongoDB Ops Manager アプリケーションをホストするすべてのクラスターに外部ネットワーク ロード バランサー (パススルー プロキシ) を構成します。ロード バランサーは、ラウンドロビン方式で各クラスターの LoadBalancer サービスにトラフィックを転送します。次の図は、このアプローチを示しています。
外部ロード バランサーを使用したマルチクラスター配置
クリックして拡大します
  • プロキシを使用したサービス メッシュ: サービス メッシュのクロスクラスターロード バランシングを使用します。1 つのクラスターにプロキシ(Nginx や HAProxy など)を配置し、外部に公開し、TCP パススルーを <om_resource_name>-svc.<namespace>.svc.cluster.local に構成します。次の図は、このアプローチを示しています。
サービス メッシュ ロード バランシングを使用したマルチクラスター配置
クリックして拡大します

The geographical distribution of Application Database and Ops Manager instances can impact the performance of the Ops Manager Application and backup/restore processes. See Performance in Multi-Region Deployments.

可能な場合は、マルチクラスターの回復力と可用性の利点を最大限に活用するため、すべてのコンポーネントを同じ地域に配置します。

パフォーマンス低下の可能性のある要因としては、次のものがあります。

  • MongoDB Ops Manager アプリケーションとプライマリアプリケーションデータベースノード間のネットワークレイテンシが増加しました。

  • MongoDB データベース ノードとバックアップ ジョブを実行する MongoDB Ops Manager アプリケーションの間のレイテンシが増加します。

If you plan geographically distant deployments, contact MongoDB Support for assistance.

次のマルチクラスター機能では、単一クラスター配置と同じ手順が使用されます。

  • DNS SRVレコードで接続:Kubernetes Operatorが作成するシークレットから、connectionString.standardSrv DNSシードリスト接続文字列を使用してください。Kubernetes内からMongoDBデータベース リソースに接続するを参照し、Using the Kubernetes Secretタブを選択します。

  • データベースユーザーのセキュリティを管理する: 単一クラスター配置と同じ LDAP、SCRAM、X.509、OIDC 認証手順を使用します。ただし、以下の例外があります。

    • 複数のクラスターでの手順は、レプリカセットにのみ適用されます(シャーディングされたクラスターはサポートされません)。

    • mongodbResourceRef で、マルチクラスターレプリカセット名を指定します。

  • クエリ可能なバックアップ (単一クラスターのみのオンプレミス): MongoDB Ops Managerが単一のクラスターに配置されている場合は、クエリ可能なバックアップを構成できます。クエリ可能なバックアップは、複数のクラスターに配置されたMongoDB Ops Managerではサポートされていません。

このページを評価