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