Kubernetes ワークロード用のNetAppバックアップおよびリカバリ実行フック テンプレートを管理する
実行フックは、管理対象 Kubernetes アプリケーションのデータ保護操作と組み合わせて実行するように構成できるカスタム アクションです。たとえば、データベース アプリがある場合、実行フックを使用して、スナップショットの前にすべてのデータベース トランザクションを一時停止し、スナップショットが完了した後にトランザクションを再開できます。これにより、アプリケーションの一貫性のあるスナップショットが保証されます。実行フック テンプレートを作成するときに、フックのタイプ、実行するスクリプト、およびフックが適用されるコンテナーを決定するフィルターを指定できます。その後、テンプレートを使用して実行フックをアプリケーションに関連付けることができます。
|
デフォルトでは、 NetApp Backup and Recovery は、データ保護操作中に KubeVirt などの特定のアプリケーションのファイルシステムを自動的にフリーズおよびアンフリーズします。オプションで、 Trident Protect ドキュメントの指示に従って、この動作をグローバルに、または特定のアプリケーションに対して無効にすることができます。
|
組織管理者またはSnapCenter管理者。"NetApp のバックアップとリカバリのアクセス ロールについて学習します" 。 "すべてのサービスに対するNetAppコンソールのアクセスロールについて学習します" 。
実行フックの種類
NetApp Backup and Recovery は、実行できるタイミングに基づいて、次のタイプの実行フックをサポートしています。
-
事前スナップショット
-
スナップショット後
-
バックアップ前
-
バックアップ後
-
復元後
実行順序
データ保護操作が実行されると、実行フック イベントが次の順序で発生します。
-
適用可能なカスタム操作前実行フックは、適切なコンテナで実行されます。必要な数だけカスタム操作前フックを作成して実行できますが、操作前のこれらのフックの実行順序は保証されておらず、構成もできません。
-
該当する場合、ファイルシステムのフリーズが発生します。
-
データ保護操作が実行されます。
-
該当する場合、凍結されたファイルシステムは凍結解除されます。
-
適用可能なカスタム操作後実行フックは、適切なコンテナで実行されます。必要な数だけカスタム操作後フックを作成して実行できますが、操作後のこれらのフックの実行順序は保証されておらず、構成もできません。
同じタイプ(たとえば、事前スナップショット)の実行フックを複数作成する場合、それらのフックの実行順序は保証されません。ただし、異なるタイプのフックの実行順序は保証されます。たとえば、さまざまな種類のフックがすべて含まれる構成の実行順序は次のとおりです。
-
スナップショット前のフックが実行されました
-
スナップショット後のフックが実行されました
-
バックアップ前のフックが実行されました
-
バックアップ後のフックが実行されました
|
実行フック スクリプトを実稼働環境で有効にする前に、必ずテストする必要があります。 'kubectl exec' コマンドを使用すると、スクリプトを簡単にテストできます。実稼働環境で実行フックを有効にした後、結果のスナップショットとバックアップをテストして、一貫性があることを確認します。これを行うには、アプリを一時的な名前空間に複製し、スナップショットまたはバックアップを復元してから、アプリをテストします。 |
|
スナップショット前の実行フックによって Kubernetes リソースが追加、変更、または削除された場合、それらの変更はスナップショットまたはバックアップと、その後のすべての復元操作に含まれます。 |
カスタム実行フックに関する重要な注意事項
アプリの実行フックを計画するときは、次の点を考慮してください。
-
実行フックは、アクションを実行するためにスクリプトを使用する必要があります。複数の実行フックが同じスクリプトを参照できます。
-
実行フックは、実行可能なシェル スクリプトの形式で記述する必要があります。
-
スクリプトのサイズは 96 KB に制限されています。
-
実行フックの設定と一致基準は、スナップショット、バックアップ、または復元操作に適用可能なフックを決定するために使用されます。
|
実行フックは、多くの場合、実行対象のアプリケーションの機能を低下させたり完全に無効にしたりするため、カスタム実行フックの実行にかかる時間を常に最小限に抑えるようにする必要があります。関連する実行フックを使用してバックアップまたはスナップショット操作を開始したが、その後キャンセルした場合でも、バックアップまたはスナップショット操作がすでに開始されている場合は、フックは引き続き実行できます。つまり、バックアップ後の実行フックで使用されるロジックでは、バックアップが完了したと想定することはできません。 |
実行フックフィルター
アプリケーションの実行フックを追加または編集するときに、実行フックにフィルターを追加して、フックが一致するコンテナーを管理できます。フィルターは、すべてのコンテナーで同じコンテナー イメージを使用するが、各イメージを異なる目的で使用する可能性があるアプリケーション (Elasticsearch など) に役立ちます。フィルターを使用すると、実行フックが必ずしもすべての同一コンテナーではなく一部のコンテナーで実行されるシナリオを作成できます。単一の実行フックに対して複数のフィルターを作成すると、それらは論理 AND 演算子で結合されます。実行フックごとに最大 10 個のアクティブ フィルターを設定できます。
実行フックに追加する各フィルターは、正規表現を使用してクラスター内のコンテナを照合します。フックがコンテナに一致すると、フックはそのコンテナ上で関連付けられたスクリプトを実行します。フィルターの正規表現では正規表現 2 (RE2) 構文が使用されますが、一致リストからコンテナーを除外するフィルターの作成はサポートされていません。 NetApp Backup and Recoveryが実行フックフィルタの正規表現でサポートする構文については、以下を参照してください。 "正規表現2(RE2)構文のサポート" 。
|
復元またはクローン操作後に実行される実行フックに名前空間フィルターを追加し、復元またはクローンのソースと宛先が異なる名前空間にある場合、名前空間フィルターは宛先の名前空間にのみ適用されます。 |
実行フックの例
訪問 "NetApp Verda GitHub プロジェクト"Apache Cassandra や Elasticsearch などの一般的なアプリの実際の実行フックをダウンロードします。また、例を参照したり、独自のカスタム実行フックを構成するためのアイデアを入手したりすることもできます。
実行フックテンプレートを作成する
アプリケーションでのデータ保護操作の前後にアクションを実行するために使用できるカスタム実行フック テンプレートを作成できます。
-
コンソールで、[保護] > [バックアップと復元] に移動します。
-
*設定*タブを選択します。
-
実行フック テンプレート セクションを展開します。
-
*実行フックテンプレートの作成*を選択します。
-
実行フックの名前を入力します。
-
必要に応じて、フックの種類を選択します。たとえば、復元後フックは復元操作が完了した後に実行されます。
-
スクリプト テキスト ボックスに、実行フック テンプレートの一部として実行する実行可能シェル スクリプトを入力します。必要に応じて、*スクリプトのアップロード*を選択して、代わりにスクリプト ファイルをアップロードすることもできます。
-
*作成*を選択します。
テンプレートが作成され、実行フック テンプレート セクションのテンプレートのリストに表示されます。