アプリケーション データベースには、Ops Manager の設定、操作履歴、バックアップメタデータが保存されます。アプリケーション データベースを外部アプリケーション データベースとして配置すると、 Kubernetes Operator はそれを標準のMongoDBカスタムリソースとして管理します。つまり、Ops Manager は、 Kubernetes Operator が管理する他のMongoDBデプロイと同様に、それをバックアップして復元できます。
外部アプリケーション データベースを配置するには、次の手順を参照してください。
アプリケーション データベースをバックアップする理由
内部管理型の アプリケーション データベース を使用する Ops Manager の配置は、アプリケーション データベースを Ops Manager のカスタムリソース内に保存します。ここでは、標準のバックアップツールはアクセスできません。 Ops Manager 自体に障害が発生すると、それが管理する配置を制御できなくなる可能性があります。
外部アプリケーション データベースをバックアップすることで、次のニーズに対応します。
障害復旧。データ損失、データ破損、または構成変更に失敗した後に、アプリケーション データベースを復元します。
操作上の安全性のあるネット。エラーが発生する前の時点にロールバックします。
リカバリ目的の低下。継続的なoplog取得は、定期的なスナップショットのみに基づく戦略よりも低いリカバリ点とリカバリ時間目的をサポートします。
アプリケーション データベースのバックアップが提供するもの
Ops Manager は、アプリケーション データベース データのコピーと、 oplogエントリの連続したストリームを保持します。これにより、次のことが可能になります。
アプリケーション データベースの完全なスナップショットを新規または既存の配置に復元します。
選択したタイムスタンプでoplog を再生して、アプリケーション データベースをスナップショット間の任意の点で復元します。
バックアップショットを復元せずにクエリします。詳細については、「 Ops Manager リソースのクエリ可能なバックアップの構成 」を参照してください。
オプションで不変のスナップショットを使用し、保持とコンプライアンス要件を満たします。
アーキテクチャ
アプリケーション データベースの外部配置では、次のリソースが使用されます。
Resource | 説明 |
|---|---|
管理 Ops Manager | 独自の内部管理型アプリケーションデータベースを持つ Ops Managerリソース。マネジメントの Ops Managerインスタンスは、データベースを管理しません。外部アプリケーション データベースを含むプロジェクトを管理し、プライマリ Ops Managerインスタンス を失った場合は、リカバリエンジンとして機能します。別の障害ドメイン(別のアベイラビリティーゾーンなど)に配置します。 |
外部アプリケーション データベース | が に設定されているMongoDBリソース。詳細については、 |
プライマリ MongoDB Ops Manager | データベースを管理する Ops Managerリソース。 を省略し、 |
MongoDBインスタンスアプリケーションspec.role AppDBデータベース。外部アプリケーション データベースを配置する前に、これを配置します。
プライマリ Ops Managerインスタンス を失った場合は、マネジメント Ops Managerインスタンスを使用して外部アプリケーションデータベースを復元し、復元されたアプリケーションデータベースに対してプライマリ Ops Managerインスタンスを再作成してから、 MongoDBワークロードを復元します。
バックアップと外部アプリケーション データベース
Ops Manager はバックアップメタデータをアプリケーション データベースに保存し、Ops Manager アプリケーションとバックアップデーモンの両方がアプリケーション データベースに接続されます。 を使用して外部のアプリケーション データベースを参照と、 Kubernetes Operatorspec.externalApplicationDatabaseRef がこの接続を処理します。
Kubernetes Operator は、参照先のMongoDBリソースの TLS 構成と CA を解決し、それを Ops Managerステートメントとバックアップデーモンのステートメントの両方に適用します。バックアップデーモンは、 TLS 対応の外部アプリケーション データベースを、内部で管理されているアプリケーション データベースと同様に信頼します。
バックアップデーモンは、 Kubernetes Operator が Ops Manager アプリケーション用に計算するのと同じ接続文字列を使用して接続します。
spec.backup.enabledバックアップを有効にしても変更はありません。内部管理型アプリケーション データベースと同様に、 MongoDB Ops Manager のプライマリリソースに を設定します。唯一の違いは、アプリケーション データベースが実行される場所です。
外部アプリケーション データベース自体をバックアップするには、管理 Ops Managerインスタンスが管理するプロジェクトで、それを表すMongoDBリソースでバックアップを有効にします。詳細については、 「 MongoDB database のバックアップの構成 」を参照してください。
移行注釈
内部で管理されているアプリケーション データベースと外部のアプリケーション データベース間の移行中に、 Kubernetes演算子はアプリケーション データベースのステートメントに注釈を設定して、ステートメントが所有者を変更する準備ができていることをレコード。 Kubernetes演算子 は、これらの注釈を設定して読み取ります。自分で設定しないでください。
注釈 | 説明 |
|---|---|
| MongoDB Ops Managerリソースはステートメントセットをリリースし、 MongoDBリソースがそれを所有できるようにします。 Kubernetes Operator は、内部で管理されているアプリケーションデータベースから外部のアプリケーションデータベースに移行するときに、この注釈を設定します。詳細については、「 アプリケーション データベースの外部配置への移行 」を参照してください。 |
| MongoDBリソースはステートメントセットを解放し、Ops Managerリソースはそれを再利用できるようにします。 Kubernetes Operator は、外部アプリケーションデータベースを内部管理に返すときに、この注釈を設定します。詳細については、「 外部アプリケーション データベースを MongoDB Ops Manager に返す 」を参照してください。 |
要件
外部アプリケーション データベースをバックアップする前に、次のタスクを完了してください。
プライマリ Ops Managerリソース用の外部アプリケーション データベースを構成します。詳細については、「 外部アプリケーション データベースを使用して Ops Manager を配置する 」または「 アプリケーション データベースを外部配置に移行する 」を参照してください。
Kubernetes Operator が Ops Managerリソース用に作成する暗号化のキーのシークレットをバックアップします。 Kubernetes Operator はこのシークレットを
<om-resource-name>-gen-keyと名付け、Ops Manager はこのシークレットがないとアプリケーション データベースを読み取れません。詳細については、「 暗号化のキー 」を参照してください。管理 Ops Managerインスタンスのスナップショットストレージを構成します。詳しくは、 「 Kubernetes Operator を使用したファイル システム バックアップ ストアの構成 」を参照してください。
制限
アプリケーション データベースの外部バックアップには次の制限があります。
外部アプリケーション データベースは、単一のKubernetesクラスター上のMongoDBリソースである必要があります。 Kubernetes演算子は、 MongoDB MultiCluster リソースと マルチクラスタトポロジーを使用するMongoDBリソースを拒否します。マルチクラスターのサポートは、今後のリリースで予定されています。
この機能では、アプリケーション データベースはリージョン全体またはKubernetesクラスター全体で複製されません。
この機能では、アプリケーション データベース自体以外の Ops Manager 状態をバックアップまたは復元することはありません。
この機能は、Ops Manager で管理するMongoDB配置をバックアップまたは復元する方法は変更されません。
Kubernetes演算子は、 MongoDBリソースに同等の設定がないため、外部アプリケーション データベースの
automationConfigオーバーライドをサポートしていません。Kubernetes演算子は、外部アプリケーション データベースへの移行中、
spec.applicationDatabase.passwordSecretKeyRefをサポートしていません。 Kubernetes Operator は新しいパスワードを生成し、指定したパスワードをローテーションします。既存のMongoDBデプロイを外部アプリケーション データベースとして参照場合、その配置の毎日の管理を行います。 Kubernetes Operator は、 MongoDBリソース構成と内部管理されるアプリケーション データベース構成を調整するツールを提供しません。その構成は自分で指定する必要があります。