NetApp Backup and RecoveryでKubernetes実行フックテンプレートを管理する
管理対象のKubernetesアプリケーションに対する保護操作の前後でカスタムスクリプトを実行するための実行フックテンプレートを作成します。
|
|
NetApp Backup and Recoveryは、データ保護中にKubeVirtなどのアプリケーションのファイルシステムをフリーズおよびアンフリーズします。Trident Protectのドキュメントを使用して、この動作をグローバルに無効にすることも、特定のアプリケーションに対して無効にすることもできます:
|
必須 NetApp Console ロール
Backup and Recovery スーパー管理者、Backup and Recovery バックアップ管理者、または Backup and Recovery リストア管理者。"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 などの一般的なアプリの実際の実行フックをダウンロードします。また、例を参照したり、独自のカスタム実行フックを構成するためのアイデアを入手したりすることもできます。
|
|
Verda GitHub リポジトリ内のスクリプトは現状のまま提供されており、NetApp による公式サポートの対象外です。Trident Protect および Backup and Recovery 内の実行フックフレームワークのみが、NetApp によって公式にサポートされています。 |
実行フックテンプレートを作成する
アプリケーションでのデータ保護操作の前後にアクションを実行するために使用できるカスタム実行フック テンプレートを作成できます。
|
|
ここで作成するテンプレートは、Kubernetes ワークロードを保護する場合にのみ使用できます。 |
-
コンソールで、[保護] > [バックアップと復元] に移動します。
-
*設定*タブを選択します。
-
実行フック テンプレート セクションを展開します。
-
*実行フックテンプレートの作成*を選択します。
-
実行フックの名前を入力します。
-
必要に応じて、フックの種類を選択します。たとえば、復元後フックは復元操作が完了した後に実行されます。
-
スクリプト テキスト ボックスに、実行フック テンプレートの一部として実行する実行可能シェル スクリプトを入力します。必要に応じて、*スクリプトのアップロード*を選択して、代わりにスクリプト ファイルをアップロードすることもできます。
-
*作成*を選択します。
テンプレートを作成すると、実行フック テンプレート セクションのテンプレートのリストに表示されます。