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

管理應用程式執行掛勾

貢獻者

執行攔截是自訂指令碼、您可以在託管應用程式的快照之前或之後執行。例如、如果您有資料庫應用程式、您可以使用執行掛勾來暫停快照之前的所有資料庫交易、並在快照完成後繼續交易。如此可確保應用程式一致的快照。

預設執行掛勾和規則運算式

對於某些應用程式、Astra Control隨附NetApp提供的預設執行掛勾、可處理快照前後的凍結和解凍作業。Astra Control使用規則運算式、將應用程式的容器映像與下列應用程式配對:

  • MariaDB

    • 符合規則運算式:\bmariadb\b

  • MySQL

    • 相符的規則運算式:\bmysql\b

  • PostgreSQL

    • 相符的規則運算式:\bpostgresql\b

如果有相符項目、則NetApp提供的該應用程式預設執行掛勾會顯示在應用程式的作用中執行掛勾清單中、而這些掛勾會在擷取該應用程式的快照時自動執行。如果其中一個自訂應用程式有類似的映像名稱、正好符合其中一個規則運算式(而且您不想使用預設的執行掛勾)、您可以變更映像名稱、 或停用該應用程式的預設執行掛勾、改用自訂掛勾。

您無法刪除或修改預設的執行掛勾。

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

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

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

  • 指令碼大小限制為128 KB。

  • Astra Control會使用執行掛勾設定和任何符合條件來判斷哪些掛勾適用於快照。

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

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

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

註 由於執行掛勾通常會減少或完全停用執行中應用程式的功能、因此您應該一律盡量縮短自訂執行掛勾執行所需的時間。

執行快照時、執行掛機事件會依照下列順序進行:

  1. 任何適用的NetApp提供的預設快照前執行掛勾、都會在適當的容器上執行。

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

  3. 快照即會執行。

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

  5. 任何適用的NetApp提供的預設快照後執行掛勾、都會在適當的容器上執行。

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

檢視現有的執行掛勾

您可以檢視現有的自訂或NetApp提供的應用程式預設執行勾點。

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

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

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

建立自訂執行掛勾

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

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

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

  3. 選取*新增連結*。

  4. 在* HookDetails(掛機詳細資料)區域中、視掛機的執行時間而定、選擇*預先快照*或*快照後

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

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

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

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

    • 上傳自訂指令碼。

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

      2. 瀏覽至檔案並上傳。

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

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

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

      1. 選擇*從剪貼簿貼上*選項。

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

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

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

  9. 選取*新增攔截*。

停用執行掛勾

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

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

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

  3. 選取*「動作*」下拉式清單以顯示您要停用的掛勾。

  4. 選擇*停用*。

刪除執行掛勾

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

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

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

  3. 選取*「動作」*下拉式選單以選取您要刪除的掛勾。

  4. 選擇*刪除*。