アプリケーション実行フックを管理します
実行フックは、管理対象アプリケーションのスナップショットの前または後に実行できるカスタムスクリプトです。たとえば、データベースアプリケーションがある場合、実行フックを使用して、スナップショットの前にすべてのデータベーストランザクションを一時停止し、スナップショットの完了後にトランザクションを再開できます。これにより、アプリケーションと整合性のある Snapshot を作成できます。
デフォルトの実行フックと正規表現
一部のアプリケーションでは、ネットアップが提供するデフォルトの実行フックが Astra Control に付属しており、スナップショットの前後にフリーズや再開の操作を処理します。Astra Control では、正規表現を使用して、アプリケーションのコンテナイメージを次のアプリケーションに照合します。
-
MariaDB
-
正規表現 \bmariadb\b に一致しています
-
-
MySQL
-
正規表現 \bmysqql\b に一致しています
-
-
PostgreSQL
-
正規表現 \bpostgresql\b と一致します
-
一致した場合は、そのアプリケーションのデフォルトの実行フックがアプリケーションのアクティブな実行フックのリストに表示され、そのアプリケーションのスナップショットが作成されると、それらのフックが自動的に実行されます。カスタムアプリケーションの 1 つに、正規表現の 1 つと一致するように表示されるイメージ名が似ている場合(デフォルトの実行フックを使用しない場合)、イメージ名を変更することができます。 または、そのアプリケーションのデフォルト実行フックを無効にして、代わりにカスタムフックを使用します。
デフォルトの実行フックを削除または変更することはできません。
カスタム実行フックに関する重要な注意事項
アプリケーションの実行フックを計画するときは、次の点を考慮してください。
-
Astra Control では、実行フックを実行可能なシェルスクリプトの形式で記述する必要があります。
-
スクリプトサイズは 128KB に制限されています。
-
Astra Control は、実行フックの設定と一致条件を使用して、スナップショットに適用できるフックを決定します。
-
実行フックの障害はすべてソフトな障害です他のフックとスナップショットは ' フックが失敗しても試行されますただし、フックが失敗すると、 * アクティビティ * ページイベントログに警告イベントが記録されます。
-
実行フックを作成、編集、または削除するには、 Owner 、 Admin 、または Member 権限を持つユーザーである必要があります。
-
実行フックの実行に 25 分以上かかる場合 ' フックは失敗し ' 戻りコードが N/A のイベント・ログ・エントリが作成されます該当する Snapshot はタイムアウトして失敗とマークされ、タイムアウトを通知するイベントログエントリが生成されます。
実行フックは、実行中のアプリケーションの機能を低下させるか、完全に無効にすることが多いため、カスタム実行フックの実行時間を最小限に抑えるようにしてください。 |
スナップショットが実行されると、実行フックイベントが次の順序で実行されます。
-
ネットアップが提供するデフォルトの Snapshot 前実行フックは、該当するコンテナで実行されます。
-
適用可能なカスタムスナップショット前実行フックは、適切なコンテナで実行されます。必要な数のカスタムスナップショット前フックを作成して実行できますが ' スナップショットの実行順序は保証も構成もされていません
-
スナップショットが実行されます。
-
適用可能なカスタムスナップショット後実行フックは、適切なコンテナで実行されます。必要な数のカスタムスナップショット後フックを作成して実行できますが ' スナップショット後のこれらのフックの実行順序は保証されておらず ' 構成もできません
-
ネットアップが提供するデフォルトのポスト Snapshot 実行フックは、該当するコンテナで実行されます。
本番環境で実行スクリプトを有効にする前に、必ず実行フックスクリプトをテストしてください。'kubectl exec' コマンドを使用すると、スクリプトを簡単にテストできます。本番環境で実行フックを有効にしたら、作成されたスナップショットの整合性をテストします。これを行うには、アプリケーションを一時ネームスペースにクローニングし、スナップショットをリストアしてから、アプリケーションをテストします。 |
既存の実行フックを表示します
既存のカスタム実行フックまたはネットアップが提供するアプリケーションのデフォルト実行フックを表示できます。
-
「 * アプリケーション」に移動し、管理アプリの名前を選択します。
-
[ 実行フック * ] タブを選択します。
有効または無効になっているすべての実行フックを結果リストに表示できます。フックのステータス ' ソース ' および実行時(スナップショット前またはスナップショット後)を表示できます実行フックに関連するイベントログを表示するには、左側のナビゲーション領域の * アクティビティ * ページに移動します。
カスタム実行フックを作成します
アプリケーションのカスタム実行フックを作成できます。を参照してください "実行フックの例" フックの例を参照してください。実行フックを作成するには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。
実行フックとして使用するカスタムシェルスクリプトを作成する場合は、 Linux コマンドを実行しているか、実行可能ファイルへの完全パスを提供している場合を除き、ファイルの先頭に適切なシェルを指定するようにしてください。 |
-
「 * アプリケーション」を選択し、管理アプリの名前を選択します。
-
[ 実行フック * ] タブを選択します。
-
[ * 新しいフックを追加 * ] を選択します。
-
フックの詳細 * 領域で、フックを実行するタイミングに応じて、「 * Pre-Snapshot * 」または「 * Post-Snapshot * 」を選択します。
-
フックの一意の名前を入力します。
-
(オプション)実行中にフックに渡す引数を入力し、各引数を入力した後で Enter キーを押して、それぞれを記録します。
-
[* Container Images * (コンテナイメージ * ) ] 領域で、アプリケーションに含まれるすべてのコンテナイメージに対してフックを実行する必要がある場合は、 [ * Apply to all container images * (すべてのコンテナイメージに適用 * ) ] チェックボックスを有効にします。代わりに、フックが 1 つ以上の指定されたコンテナイメージに対してのみ機能する場合は、 * Container image names to match * フィールドにコンテナイメージ名を入力します。
-
[* スクリプト * ( * Script * ) ] 領域で、次のいずれかを実行します。
-
カスタムスクリプトをアップロードする。
-
[ ファイルのアップロード( Upload file ) ] オプションを選択します。
-
ファイルを参照してアップロードします。
-
スクリプトに一意の名前を付けます。
-
(オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。
-
-
クリップボードからカスタムスクリプトを貼り付けます。
-
クリップボードから貼り付け * オプションを選択します。
-
テキストフィールドを選択し、スクリプトテキストをフィールドに貼り付けます。
-
スクリプトに一意の名前を付けます。
-
(オプション)他の管理者がスクリプトについて知っておく必要があるメモを入力します。
-
-
-
[ * フックを追加 * ] を選択します。
実行フックを無効にします
アプリケーションのスナップショットの前または後に実行を一時的に禁止する場合は、実行フックを無効にできます。実行フックを無効にするには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。
-
「 * アプリケーション」を選択し、管理アプリの名前を選択します。
-
[ 実行フック * ] タブを選択します。
-
無効にするフックの * Actions * ドロップダウンを選択します。
-
[Disable] を選択します。
実行フックを削除します
不要になった実行フックは完全に削除できます。実行フックを削除するには、 Owner 、 Admin 、または Member のいずれかの権限が必要です。
-
「 * アプリケーション」を選択し、管理アプリの名前を選択します。
-
[ 実行フック * ] タブを選択します。
-
削除するフックの * Actions * ドロップダウンを選択します。
-
「 * 削除」を選択します。