Kubernetes ワークロード用のNetApp Backup and Recovery実行フック テンプレートを管理する
実行フックは、管理された Kubernetes アプリケーションのデータ保護操作で実行されるカスタム アクションです。たとえば、実行フックを使用してスナップショットの前にデータベース トランザクションを一時停止し、スナップショット後に再開することで、アプリケーション整合性のあるスナップショットを作成します。実行フック テンプレートを作成するときは、フックの種類、実行するスクリプト、およびターゲット コンテナーのフィルターを指定します。テンプレートを使用して、実行フックをアプリケーションにリンクします。
|
|
NetApp Backup and Recovery は、データ保護中に KubeVirt などのアプリケーションのファイルシステムをフリーズおよびアンフリーズします。 Trident protect ドキュメントを使用して、この動作をグローバルに、または特定のアプリケーションに対して無効にすることができます。
|
組織管理者またはSnapCenter管理者。"NetApp Backup and Recoveryのアクセス ロールについて学習します" 。 "すべてのサービスに対するNetApp Consoleのアクセスロールについて学習します" 。
実行フックの種類
NetApp Backup and Recovery は、実行できるタイミングに基づいて、次のタイプの実行フックをサポートしています。
-
事前スナップショット
-
スナップショット後
-
バックアップ前
-
バックアップ後
-
復元後
実行順序
データ保護操作が実行されると、実行フック イベントが次の順序で発生します。
-
適用可能なカスタム操作前実行フックは、適切なコンテナで実行されます。複数のカスタム事前操作フックを作成できますが、その実行順序は保証されず、構成もできません。
-
該当する場合、ファイルシステムのフリーズが発生します。
-
データ保護操作が実行されます。
-
該当する場合、凍結されたファイルシステムは凍結解除されます。
-
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 などの一般的なアプリの実際の実行フックをダウンロードします。また、例を参照したり、独自のカスタム実行フックを構成するためのアイデアを入手したりすることもできます。
実行フックテンプレートを作成する
アプリケーションでのデータ保護操作の前後にアクションを実行するために使用できるカスタム実行フック テンプレートを作成できます。
-
コンソールで、[保護] > [バックアップと復元] に移動します。
-
*設定*タブを選択します。
-
実行フック テンプレート セクションを展開します。
-
*実行フックテンプレートの作成*を選択します。
-
実行フックの名前を入力します。
-
必要に応じて、フックの種類を選択します。たとえば、復元後フックは復元操作が完了した後に実行されます。
-
スクリプト テキスト ボックスに、実行フック テンプレートの一部として実行する実行可能シェル スクリプトを入力します。必要に応じて、*スクリプトのアップロード*を選択して、代わりにスクリプト ファイルをアップロードすることもできます。
-
*作成*を選択します。
テンプレートを作成すると、実行フック テンプレート セクションのテンプレートのリストに表示されます。