Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

管理應用程式執行掛勾

貢獻者

執行攔截是一種自訂動作、可設定搭配託管應用程式的資料保護作業一起執行。例如、如果您有資料庫應用程式、您可以使用執行掛勾來暫停快照之前的所有資料庫交易、並在快照完成後繼續交易。如此可確保應用程式一致的快照。

執行掛勾的類型

Astra Control支援下列類型的執行掛勾、視執行時間而定:

  • 快照前

  • 快照後

  • 預先備份

  • 備份後

  • 還原後

關於自訂執行掛勾的重要注意事項

規劃應用程式的執行掛勾時、請考量下列事項。

  • 執行攔截必須使用指令碼來執行動作。許多執行掛勾可以參照相同的指令碼。

  • Astra Control需要執行掛勾所使用的指令碼、以執行Shell指令碼的格式寫入。

  • 指令碼大小上限為96KB。

  • Astra Control使用執行掛勾設定及任何符合條件、來判斷哪些掛勾適用於快照、備份或還原作業。

  • 所有執行掛機故障都是軟性故障、即使掛機故障、仍會嘗試其他掛機和資料保護作業。但是、當掛機失敗時、會在*活動*頁面事件記錄中記錄警告事件。

  • 若要建立、編輯或刪除執行掛勾、您必須是擁有擁有者、管理員或成員權限的使用者。

  • 如果執行掛機執行時間超過25分鐘、掛機將會失敗、並建立傳回代碼為「N/A」的事件記錄項目。任何受影響的快照都會逾時並標示為故障、並會出現一個事件記錄項目、指出逾時時間。

  • 對於Adhoc*資料保護作業、所有Hook事件都會產生並儲存在*活動*頁面事件記錄中。不過、對於排程的資料保護作業、事件記錄中只會記錄攔截故障事件(排程資料保護作業本身所產生的事件仍會記錄下來)。

註

由於執行掛勾通常會減少或完全停用執行中應用程式的功能、因此您應該一律盡量縮短自訂執行掛勾執行所需的時間。如果您以相關的執行掛勾開始備份或快照作業、但隨後取消它、則如果備份或快照作業已經開始、仍允許掛勾執行。這表示備份後執行掛勾無法假設備份已完成。

執行順序

執行資料保護作業時、執行掛機事件會依照下列順序發生:

  1. 任何適用的自訂操作前執行掛勾都會在適當的容器上執行。您可以視需要建立及執行任意數量的自訂操作前掛勾、但在作業之前執行這些掛勾的順序既不保證也無法設定。

  2. 執行資料保護作業。

  3. 任何適用的自訂操作後執行掛勾都會在適當的容器上執行。您可以視需要建立及執行任意數量的自訂後置作業掛勾、但在作業後執行這些掛勾的順序並不保證也無法設定。

如果您建立同一類型的多個執行掛勾(例如預先快照)、則無法保證這些掛勾的執行順序。不過、不同類型的掛勾的執行順序也有保證。例如、具有所有五種不同類型掛勾的組態執行順序如下所示:

  1. 執行備份前掛勾

  2. 執行快照前掛勾

  3. 快照後掛勾已執行

  4. 執行備份後掛勾

  5. 執行還原後的掛勾

如需此組態的範例、請參閱中表格的案例編號2 確定掛機是否會執行

註 在正式作業環境中啟用執行攔截指令碼之前、請務必先進行測試。您可以使用’kubecl exec’命令來方便地測試指令碼。在正式作業環境中啟用執行掛勾之後、請測試所產生的快照和備份、以確保它們一致。您可以將應用程式複製到暫用命名空間、還原快照或備份、然後測試應用程式、藉此完成此作業。

確定掛機是否會執行

請使用下表協助判斷您的應用程式是否會執行自訂執行掛勾。

請注意、所有的高階應用程式作業都是執行快照、備份或還原等基本作業之一。視案例而定、複製作業可能由這些作業的各種組合組成、因此複製作業執行的執行掛勾內容會有所不同。

就地還原作業需要現有的快照或備份、因此這些作業不會執行快照或備份掛勾。

註

如果您先開始、然後取消包含快照的備份、並有相關的執行掛勾、有些掛勾可能會執行、有些則不會執行。這表示備份後執行掛勾無法假設備份已完成。請謹記以下幾點、以相關的執行掛勾來取消備份:

  • 備份前和備份後的掛勾一律會執行。

  • 如果備份包含新的快照、而且快照已啟動、則會執行快照前和快照後的掛勾。

  • 如果在快照開始之前取消備份、則不會執行快照前和快照後掛勾。

案例 營運 現有快照 現有備份 命名空間 叢集 Snapshot hooks會執行 備份掛勾運轉 執行還原掛勾

1.

複製

n

n

新功能

相同

n

2.

複製

n

n

新功能

與眾不同

3.

複製或還原

n

新功能

相同

n

n

4.

複製或還原

n

新功能

相同

n

n

5.

複製或還原

n

新功能

與眾不同

n

6.

複製或還原

n

新功能

與眾不同

n

n

7.

還原

n

現有的

相同

n

n

8.

還原

n

現有的

相同

n

n

9.

Snapshot

不適用

不適用

不適用

不適用

不適用

不適用

10.

備份

n

不適用

不適用

不適用

不適用

11.

備份

不適用

不適用

不適用

n

不適用

檢視現有的執行掛勾

您可以檢視應用程式的現有自訂執行掛勾。

步驟
  1. 移至*應用程式*、然後選取託管應用程式的名稱。

  2. 選取*執行掛勾*索引標籤。

    您可以在結果清單中檢視所有已啟用或已停用的執行掛勾。您可以查看某個掛機的狀態、來源、以及其執行時間(作業前或作業後)。若要檢視執行掛起的相關事件記錄、請前往左側導覽區域的*活動*頁面。

檢視現有的指令碼

您可以檢視現有上傳的指令碼。您也可以在此頁面上查看使用中的指令碼、以及使用這些指令碼的攔截器。

步驟
  1. 前往*帳戶*。

  2. 選取*指令碼*索引標籤。

    您可以在此頁面上看到現有上傳指令碼的清單。「使用者」欄會顯示每個指令碼使用的執行掛勾。

新增指令碼

您可以新增一個或多個執行掛勾可以參考的指令碼。許多執行掛勾可以參照相同的指令碼、只要變更一個指令碼、就能更新許多執行掛勾。

步驟
  1. 前往*帳戶*。

  2. 選取*指令碼*索引標籤。

  3. 選取*「Add*」。

  4. 執行下列其中一項:

    • 上傳自訂指令碼。

      1. 選取*上傳檔案*選項。

      2. 瀏覽至檔案並上傳。

      3. 為指令碼指定唯一名稱。

      4. (選用)輸入其他系統管理員應該知道的任何指令碼附註。

      5. 選取*儲存指令碼*。

    • 從剪貼簿貼入自訂指令碼。

      1. 選取*貼上或類型*選項。

      2. 選取文字欄位、然後將指令碼文字貼到欄位中。

      3. 為指令碼指定唯一名稱。

      4. (選用)輸入其他系統管理員應該知道的任何指令碼附註。

  5. 選取*儲存指令碼*。

結果

新指令碼會出現在「指令碼」索引標籤的清單中。

刪除指令碼

如果指令碼不再需要、也不被任何執行掛勾使用、您可以從系統中移除指令碼。

步驟
  1. 前往*帳戶*。

  2. 選取*指令碼*索引標籤。

  3. 選擇要移除的指令碼、然後在*「Actions」(動作)*欄中選取功能表。

  4. 選擇*刪除*。

註 如果指令碼與一個或多個執行掛勾相關聯、則無法使用*刪除*動作。若要刪除指令碼、請先編輯相關的執行掛勾、然後將其與其他指令碼建立關聯。

建立自訂執行掛勾

您可以為應用程式建立自訂執行掛勾。請參閱 "執行攔截範例" 如需攔截範例、您需要擁有擁有擁有者、管理員或成員權限、才能建立執行掛勾。

註 當您建立自訂Shell指令碼作為執行掛勾時、請記得在檔案開頭指定適當的Shell、除非您執行特定命令或提供執行檔的完整路徑。
步驟
  1. 選取*應用程式*、然後選取託管應用程式的名稱。

  2. 選取*執行掛勾*索引標籤。

  3. 選取*「Add*」。

  4. 在「勾選詳細資料」區域中、從*操作*下拉式功能表中選取作業類型、以決定掛機的執行時間。

  5. 輸入掛機的唯一名稱。

  6. (選用)輸入執行期間要傳遞至掛機的任何引數、並在您輸入的每個引數之後按Enter鍵以記錄每個引數。

  7. 在「* Container images"(* Container映像*)區域中、如果掛勾應針對應用程式中包含的所有容器映像執行、請啟用「* Apply to all Container images"(套用至所有容器映像)核取方塊。如果掛機只能對一個或多個指定的容器映像起作用、請在「要比對的容器映像名稱」欄位中輸入容器映像名稱。

  8. 在*指令碼*區域中、執行下列其中一項:

    • 新增指令碼。

      1. 選取*「Add*」。

      2. 執行下列其中一項:

        • 上傳自訂指令碼。

          1. 選取*上傳檔案*選項。

          2. 瀏覽至檔案並上傳。

          3. 為指令碼指定唯一名稱。

          4. (選用)輸入其他系統管理員應該知道的任何指令碼附註。

          5. 選取*儲存指令碼*。

        • 從剪貼簿貼入自訂指令碼。

          1. 選取*貼上或類型*選項。

          2. 選取文字欄位、然後將指令碼文字貼到欄位中。

          3. 為指令碼指定唯一名稱。

          4. (選用)輸入其他系統管理員應該知道的任何指令碼附註。

    • 從清單中選取現有的指令碼。

      這會指示執行掛勾使用此指令碼。

  9. 選取*新增攔截*。

檢查執行掛勾的狀態

在快照、備份或還原作業完成執行之後、您可以檢查執行掛勾的狀態、該掛勾是執行作業的一部分。您可以使用此狀態資訊來判斷是否要保留執行掛勾、修改或刪除它。

步驟
  1. 選取*應用程式*、然後選取託管應用程式的名稱。

  2. 選取*資料保護*索引標籤。

  3. 選取* Snapshot*以查看執行中的快照、或選取*備份*以查看執行中的備份。

    掛機狀態」會顯示執行掛機在作業完成後執行的狀態。您可以將游標暫留在狀態上、以取得更多詳細資料。例如、如果快照期間發生執行掛機故障、則將游標移到該快照的掛機狀態上會顯示故障執行掛勾的清單。若要查看每次失敗的原因、您可以查看左側導覽區域的*活動*頁面。

檢視指令碼使用量

您可以在Astra Control Web UI中查看哪些執行掛勾使用特定指令碼。

步驟
  1. 選擇*帳戶*。

  2. 選取*指令碼*索引標籤。

    指令碼清單中的「使用者」欄位包含清單中每個指令碼所使用之掛勾的詳細資料。

  3. 在「使用者」欄中選取您感興趣的指令碼資訊。

    此時會出現更詳細的清單、其中包含使用指令碼的掛勾名稱、以及設定用來執行的作業類型。

停用執行掛勾

如果您想要暫時避免在應用程式快照之前或之後執行、可以停用執行掛勾。您需要擁有擁有擁有者、管理員或成員權限、才能停用執行掛勾。

步驟
  1. 選取*應用程式*、然後選取託管應用程式的名稱。

  2. 選取*執行掛勾*索引標籤。

  3. 在「動作」欄中選取「選項」功能表、以顯示您要停用的掛勾。

  4. 選擇*停用*。

刪除執行掛勾

如果不再需要執行掛勾、您可以完全移除該掛勾。您需要擁有擁有擁有者、管理員或成員權限、才能刪除執行掛勾。

步驟
  1. 選取*應用程式*、然後選取託管應用程式的名稱。

  2. 選取*執行掛勾*索引標籤。

  3. 在「動作」欄中選取「選項」功能表、以選取您要刪除的掛勾。

  4. 選擇*刪除*。