Skip to main content
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

アプリケーション実行フックを管理します

共同作成者

実行フックは、管理対象アプリケーションのデータ保護操作と組み合わせて実行するように構成できるカスタムアクションです。たとえば、データベースアプリケーションがある場合、実行フックを使用して、スナップショットの前にすべてのデータベーストランザクションを一時停止し、スナップショットの完了後にトランザクションを再開できます。これにより、アプリケーションと整合性のある Snapshot を作成できます。

実行フックのタイプ

Astra Controlは、実行可能なタイミングに基づいて、次の種類の実行フックをサポートします。

  • Snapshot前

  • Snapshot後

  • バックアップ前

  • バックアップ後

  • リストア後のPOSTコマンドです

カスタム実行フックに関する重要な注意事項

アプリケーションの実行フックを計画するときは、次の点を考慮してください。

  • 実行フックは、スクリプトを使用してアクションを実行する必要があります。多くの実行フックは、同じスクリプトを参照できます。

  • Astra Controlでは、実行フックが実行可能なシェルスクリプトの形式で記述されるようにするスクリプトが必要です。

  • スクリプトのサイズは96KBに制限されています。

  • Astra Controlは、実行フックの設定と一致条件を使用して、スナップショット、バックアップ、または復元操作に適用できるフックを決定します。

  • 実行フックの障害はすべて’ソフトな障害ですフックが失敗しても’他のフックとデータ保護操作は試行されますただし、フックが失敗すると、 * アクティビティ * ページイベントログに警告イベントが記録されます。

  • 実行フックを作成、編集、または削除するには、 Owner 、 Admin 、または Member 権限を持つユーザーである必要があります。

  • 実行フックの実行に 25 分以上かかる場合 ' フックは失敗し ' 戻りコードが N/A のイベント・ログ・エントリが作成されます該当する Snapshot はタイムアウトして失敗とマークされ、タイムアウトを通知するイベントログエントリが生成されます。

  • アドホックデータ保護操作の場合、すべてのフックイベントが生成され、[Activity]ページのイベントログに保存されます。ただし、スケジュールされたデータ保護処理については、フック障害イベントだけがイベントログに記録されます(スケジュールされたデータ保護処理自体によって生成されたイベントは記録されたままです)。

メモ
  • Istioサービスメッシュに参加するアプリケーションの実行フックを作成する場合は、フックがサービスメッシュコンテナではなく、元のアプリケーションコンテナに対して実行されていることを確認します。Istioサービスメッシュを使用するアプリケーションに対して実行されるすべての実行フックにフィルターregexを適用することで、Istioサービスメッシュコンテナを除外できます。

  • 実行フックは、実行中のアプリケーションの機能を低下させるか、完全に無効にすることが多いため、カスタム実行フックの実行時間を最小限に抑えるようにしてください。

  • 実行フックが関連付けられている状態でバックアップまたはスナップショット操作を開始した後’キャンセルした場合でも’バックアップまたはスナップショット操作がすでに開始されていればフックは実行できますつまり、バックアップ後の実行フックでは、バックアップが完了したとは判断できません。

実行順序

データ保護操作を実行すると、実行フックイベントが次の順序で実行されます。

  1. 適用可能なカスタムプリオペレーション実行フックは、適切なコンテナで実行されます。カスタムのプリオペレーションフックは必要なだけ作成して実行できますが、操作前のこれらのフックの実行順序は保証も構成もされていません。

  2. データ保護処理が実行されます。

  3. 適用可能なカスタムポストオペレーション実行フックは、適切なコンテナで実行されます。必要な数のカスタムポストオペレーションフックを作成して実行できますが、操作後のこれらのフックの実行順序は保証されず、設定もできません。

同じ種類の実行フック(スナップショット前など)を複数作成する場合、これらのフックの実行順序は保証されません。ただし、異なるタイプのフックの実行順序は保証されています。たとえば、5つの異なるタイプのフックをすべて持つ構成の実行順序は、次のようになります。

  1. 予備フックが実行されます

  2. スナップショット前フックが実行されます

  3. スナップショット後フックが実行されます

  4. バックアップ後のフックが実行されます

  5. 復元後のフックが実行されます

シナリオ番号2のこの設定の例は、の表を参照してください フックが実行されるかどうかを確認します

メモ 本番環境で実行スクリプトを有効にする前に、必ず実行フックスクリプトをテストしてください。'kubectl exec' コマンドを使用すると、スクリプトを簡単にテストできます。本番環境で実行フックを有効にしたら、作成されたSnapshotとバックアップをテストして整合性があることを確認します。これを行うには、アプリケーションを一時的なネームスペースにクローニングし、スナップショットまたはバックアップをリストアしてから、アプリケーションをテストします。

フックが実行されるかどうかを確認します

次の表を使用して、アプリケーションでカスタム実行フックが実行されるかどうかを判断します。

アプリケーションの高レベルの処理は、すべてスナップショット、バックアップ、またはリストアの基本的な処理のいずれかを実行することで構成されることに注意してください。シナリオによっては、クローニング処理はこれらの処理のさまざまな組み合わせで構成されるため、クローン処理を実行する実行フックはさまざまです。

In Placeリストア処理では既存のSnapshotまたはバックアップが必要になるため、これらの処理ではSnapshotまたはバックアップフックは実行されません。

メモ

開始してスナップショットを含むバックアップをキャンセルし’実行フックが関連付けられている場合は’一部のフックが実行され’ほかのフックが実行されないことがありますつまり、バックアップ後の実行フックでは、バックアップが完了したとは判断できません。キャンセルしたバックアップに関連する実行フックがある場合は、次の点に注意してください。

  • バックアップ前およびバックアップ後のフックは常に実行されます。

  • バックアップに新しいスナップショットが含まれており’スナップショットが開始されている場合は’スナップショット前フックとスナップショット後フックが実行されます

  • スナップショットの開始前にバックアップがキャンセルされた場合は’スナップショット前フックとスナップショット後フックは実行されません

シナリオ( Scenario ) 操作 既存のSnapshot 既存のバックアップ ネームスペース クラスタ スナップショットフックが実行されます バックアップフックが実行されます フックを元に戻します

1.

クローン

N

N

新規

同じ

Y

N

Y

2.

クローン

N

N

新規

違う

Y

Y

Y

3.

クローンまたはリストア

Y

N

新規

同じ

N

N

Y

4.

クローンまたはリストア

N

Y

新規

同じ

N

N

Y

5.

クローンまたはリストア

Y

N

新規

違う

N

Y

Y

6.

クローンまたはリストア

N

Y

新規

違う

N

N

Y

7.

リストア

Y

N

既存

同じ

N

N

Y

8.

リストア

N

Y

既存

同じ

N

N

Y

9.

スナップショット

該当なし

該当なし

該当なし

該当なし

Y

該当なし

該当なし

10.

バックアップ

N

該当なし

該当なし

該当なし

Y

Y

該当なし

11.

バックアップ

Y

該当なし

該当なし

該当なし

N

Y

該当なし

実行フックの例

にアクセスします "NetApp Verda GitHubプロジェクト" 例を見て、実行フックをどのように構成するかを考えてみましょう。これらの例は、テンプレートまたはテストスクリプトとして使用できます。

既存の実行フックを表示します

アプリケーションの既存のカスタム実行フックを表示できます。

手順
  1. 「 * アプリケーション」に移動し、管理アプリの名前を選択します。

  2. [ 実行フック * ] タブを選択します。

    有効または無効になっているすべての実行フックを結果リストに表示できます。フックのステータス、ソース、および実行時刻(プリ/ポストオペレーション)を表示できます。実行フックに関連するイベントログを表示するには、左側のナビゲーション領域の * アクティビティ * ページに移動します。

既存のスクリプトを表示します

アップロードされた既存のスクリプトを表示できます。このページでは、使用中のスクリプトと、使用中のフックを確認することもできます。

手順
  1. アカウント」に移動します。

  2. [スクリプト]タブを選択します。

    このページには、アップロードされた既存のスクリプトのリストが表示されます。[使用者*]列には、各スクリプトを使用している実行フックが表示されます。

スクリプトを追加します

実行フックが参照できるスクリプトを1つ以上追加できます。多くの実行フックは、同じスクリプトを参照できます。これにより、1つのスクリプトのみを変更することで、多数の実行フックを更新できます。

手順
  1. アカウント」に移動します。

  2. [スクリプト]タブを選択します。

  3. 「 * 追加」を選択します。

  4. 次のいずれかを実行します。

    • カスタムスクリプトをアップロードする。

      1. [ ファイルのアップロード( Upload file ) ] オプションを選択します。

      2. ファイルを参照してアップロードします。

      3. スクリプトに一意の名前を付けます。

      4. (オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。

      5. スクリプトを保存」を選択します。

    • クリップボードからカスタムスクリプトを貼り付けます。

      1. [貼り付け(Paste)]または[タイプ(* type)]オプションを選択する

      2. テキストフィールドを選択し、スクリプトテキストをフィールドに貼り付けます。

      3. スクリプトに一意の名前を付けます。

      4. (オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。

  5. スクリプトを保存」を選択します。

結果

新しいスクリプトが、[スクリプト]タブのリストに表示されます。

スクリプトを削除します

不要になって実行フックで使用されなくなったスクリプトは、システムから削除できます。

手順
  1. アカウント」に移動します。

  2. [スクリプト]タブを選択します。

  3. 削除するスクリプトを選択し、「アクション」列のメニューを選択します。

  4. 「 * 削除」を選択します。

メモ スクリプトが1つまたは複数の実行フックに関連付けられている場合、*Delete*アクションは使用できません。スクリプトを削除するには、まず関連する実行フックを編集し、別のスクリプトに関連付けます。

カスタム実行フックを作成します

アプリケーションのカスタム実行フックを作成できます。を参照してください 実行フックの例 フックの例を参照してください。実行フックを作成するには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。

メモ 実行フックとして使用するカスタムシェルスクリプトを作成する場合は、特定のコマンドを実行するか、実行可能ファイルへの完全パスを指定する場合を除き、ファイルの先頭に適切なシェルを指定するようにしてください。
手順
  1. 「 * アプリケーション」を選択し、管理アプリの名前を選択します。

  2. [ 実行フック * ] タブを選択します。

  3. 「 * 追加」を選択します。

  4. フックの詳細*(* Hook Details )領域で、*操作(* Operation *)ドロップダウンメニューから操作タイプを選択して、フックを実行するタイミングを決定します。

  5. フックの一意の名前を入力します。

  6. (オプション)実行中にフックに渡す引数を入力し、各引数を入力した後で Enter キーを押して、それぞれを記録します。

  7. [* Container Images * (コンテナイメージ * ) ] 領域で、アプリケーションに含まれるすべてのコンテナイメージに対してフックを実行する必要がある場合は、 [ * Apply to all container images * (すべてのコンテナイメージに適用 * ) ] チェックボックスを有効にします。代わりに、フックが 1 つ以上の指定されたコンテナイメージに対してのみ機能する場合は、 * Container image names to match * フィールドにコンテナイメージ名を入力します。

  8. [* スクリプト * ( * Script * ) ] 領域で、次のいずれかを実行します。

    • 新しいスクリプトを追加します。

      1. 「 * 追加」を選択します。

      2. 次のいずれかを実行します。

        • カスタムスクリプトをアップロードする。

          1. [ ファイルのアップロード( Upload file ) ] オプションを選択します。

          2. ファイルを参照してアップロードします。

          3. スクリプトに一意の名前を付けます。

          4. (オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。

          5. スクリプトを保存」を選択します。

        • クリップボードからカスタムスクリプトを貼り付けます。

          1. [貼り付け(Paste)]または[タイプ(* type)]オプションを選択する

          2. テキストフィールドを選択し、スクリプトテキストをフィールドに貼り付けます。

          3. スクリプトに一意の名前を付けます。

          4. (オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。

    • リストから既存のスクリプトを選択します。

      このスクリプトを使用するように実行フックに指示します。

  9. [ * フックを追加 * ] を選択します。

実行フックの状態を確認します

スナップショット、バックアップ、または復元操作の実行が終了したら、操作の一部として実行された実行フックの状態を確認できます。このステータス情報を使用して、実行フックを保持するか、変更するか、削除するかを決定できます。

手順
  1. 「 * アプリケーション」を選択し、管理アプリの名前を選択します。

  2. [データ保護]タブを選択します。

  3. 実行中のSnapshotを表示するには「* Snapshots」を選択し、実行中のバックアップを表示するには「* Backups」を選択します。

    フック状態*は、操作完了後の実行フックランのステータスを示します。状態にカーソルを合わせると、詳細を確認できます。たとえば、スナップショット中に実行フック障害が発生した場合、そのスナップショットのフック状態にカーソルを合わせると、失敗した実行フックのリストが表示されます。各失敗の理由を確認するには、左側のナビゲーション領域の*アクティビティ*ページを確認します。

スクリプトの使用状況を表示します

どの実行フックがAstra Control Web UIの特定のスクリプトを使用しているかを確認できます。

手順
  1. 「 * アカウント * 」を選択します。

  2. [スクリプト]タブを選択します。

    スクリプトのリストにある* Used by *列には、リスト内の各スクリプトを使用しているフックの詳細が表示されます。

  3. 目的のスクリプトの[使用者*]列の情報を選択します。

    より詳細なリストが表示され、スクリプトを使用しているフックの名前と、それらが実行されるように構成されている操作のタイプが示されます。

実行フックを無効にします

アプリケーションのスナップショットの前または後に実行を一時的に禁止する場合は、実行フックを無効にできます。実行フックを無効にするには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。

手順
  1. 「 * アプリケーション」を選択し、管理アプリの名前を選択します。

  2. [ 実行フック * ] タブを選択します。

  3. 無効にするフックの * アクション * 列のオプションメニューを選択します。

  4. [Disable] を選択します。

実行フックを削除します

不要になった実行フックは完全に削除できます。実行フックを削除するには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。

手順
  1. 「 * アプリケーション」を選択し、管理アプリの名前を選択します。

  2. [ 実行フック * ] タブを選択します。

  3. 削除するフックの * アクション * 列のオプションメニューを選択します。

  4. 「 * 削除」を選択します。

を参照してください。