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

Kubernetes への移行の仕組み

Kubernetes 演算子は、Ops ManagerまたはCloud Managerが仮想マシンまたはベアメタル上でマネージドしている配置をKubernetesに移行できます。移行はライブかつ増分で行われます。配置は、プロセス全体を通じて読み取りと書き込み (write)を提供し続けます。通常のMongoDBレプリケーションを使用して、ノードを仮想マシンからKubernetesに一度に1つずつ移動します。

移行は、データコピーツールではなく、標準のMongoDBレプリケーションに依存します。移行は次の3つのフェーズで進行します。

  • 拡張。既存のレプリカセットに Kubernetes ノードを追加します。Kubernetes 演算子は、新しいノードを非投票ノードとして作成し、そしてそれらは既存のノードから最初の同期を実行します。

  • 昇格仮想マシンのノードからKubernetesのノードに投票と優先順位を移行します。外部ノードは、削除されるまで、ソースのオートメーション構成で既に持っている投票と優先順位を保持します。

  • 刈り捨てる。仮想マシンのノードを 1 つずつ除き、除くごとにレプリカセットが目標状態に達するまで待ちます。

移行は、Kubernetes 演算子がノードの 100% をマネージドし、spec.externalMembers が空であり、すべてのデータが Kubernetes 永続ボリュームクレームに保存されると完了します。その時点では、バーチャル マシン上にノードは残っていません。

移行ワークフローはスナップショットを復元しません、また mongosync または別の Cluster-to-Cluster Sync ツールを使用しません。Cluster-to-Cluster Sync ツールでは、切り替え時にダウンタイムが発生し、時系列コレクションのサポートがなく、通常は安全に実行するためにフィールドによるサポートが必要になります。レプリケーションベースの移行により、これらの制限を回避できます。配置は引き続き利用可能であり、移行は配置の他の部分と同じコレクションタイプをサポートし、kubectl mongodb プラグインを使用してプロセスを自ら運営します。

移行中はずっと読み取りが利用可能です。選挙中に書き込み (write)が一時的に失敗する可能性があります。そのため、ドライバーは再試行可能な書き込みを使用する必要があります。読み取り対象が移動すると、読み取りレイテンシが増加する可能性があります。そのため、Kubernetes クラスターをバーチャル マシンと同じリージョン内で実行します。移行されたセカンダリに対する長時間カーソルは、クイエッス モードがないため、切断されます。

移行の進行中、配置は仮想マシンとKubernetesにノードが分裂したハイブリッド状態で実行されます。Kubernetes 演算子は、アクティブな移行中の過渡的な状態としてのみ、このハイブリッド状態をサポートします。移行には、その期間中、2つの環境間で永続的な双方向ネットワーク接続が必要です。Kubernetes 演算子は、分裂した環境の配置を無期限に実行することをサポートしていません。

Kubernetes 演算子が行わないこと:

  • バーチャル マシンを廃止処分します。移行の完了後、自分で廃止します。

  • 移行をロールバックします。移行が開始されると、それを元に戻す自動化された方法はありません。

  • データをシードまたは事前コピーします。すべてのデータ移動はMongoDBのレプリケーションを通じて行われます。

  • MongoDB Ops ManagerまたはCloud Manager自体を移行します。MongoDBの配置のみがKubernetesに移行されます。