管理應用程式執行掛勾
執行攔截是一種自訂動作、可設定搭配託管應用程式的資料保護作業一起執行。例如、如果您有資料庫應用程式、您可以使用執行掛勾來暫停快照之前的所有資料庫交易、並在快照完成後繼續交易。如此可確保應用程式一致的快照。
執行掛勾的類型
Astra Control支援下列類型的執行掛勾、視執行時間而定:
-
快照前
-
快照後
-
預先備份
-
備份後
-
還原後
-
容錯移轉後
執行攔截篩選器
當您新增或編輯應用程式的執行掛鉤時、您可以將篩選器新增至執行掛鉤、以管理掛鉤將符合的容器。篩選器對於在所有容器上使用相同容器映像的應用程式來說非常實用、但可能會將每個映像用於不同的用途(例如Elasticsearch)。篩選器可讓您建立執行攔截器在某些容器上執行的案例、但不一定所有容器都相同。如果您為單一執行掛勾建立多個篩選器、這些篩選器會與邏輯和運算子結合使用。每個執行掛機最多可有10個作用中篩選器。
您新增至執行掛勾的每個篩選器都會使用規則運算式來比對叢集中的容器。當掛機符合容器時、掛機會在該容器上執行其相關的指令碼。篩選器的規則運算式使用規則運算式2(RE2)語法、不支援建立篩選器、將容器從相符項目清單中排除。如需Astra Control在執行攔截篩選器中支援規則運算式的語法資訊、請參閱 "規則運算式2(RE2)語法支援"。
如果您將命名空間篩選器新增至執行掛勾、而執行還原或複製作業之後執行、且還原或複製來源與目的地位於不同的命名空間、則命名空間篩選器只會套用至目的地命名空間。 |
關於自訂執行掛勾的重要注意事項
規劃應用程式的執行掛勾時、請考量下列事項。
由於執行掛勾通常會減少或完全停用執行中應用程式的功能、因此您應該一律盡量縮短自訂執行掛勾執行所需的時間。 |
-
執行攔截必須使用指令碼來執行動作。許多執行掛勾可以參照相同的指令碼。
-
Astra Control需要執行掛勾所使用的指令碼、以執行Shell指令碼的格式寫入。
-
指令碼大小上限為96KB。
-
Astra Control使用執行掛勾設定及任何符合條件、來判斷哪些掛勾適用於快照、備份或還原作業。
-
所有執行掛機故障都是軟性故障、即使掛機故障、仍會嘗試其他掛機和資料保護作業。但是、當掛機失敗時、會在*活動*頁面事件記錄中記錄警告事件。
-
若要建立、編輯或刪除執行掛勾、您必須是擁有擁有者、管理員或成員權限的使用者。
-
如果執行掛機執行時間超過25分鐘、掛機將會失敗、並建立傳回代碼為「N/A」的事件記錄項目。任何受影響的快照都會逾時並標示為故障、並會出現一個事件記錄項目、指出逾時時間。
-
對於特殊資料保護作業、所有攔截事件都會產生並儲存在 * 活動 * 頁面事件記錄中。不過、對於排程的資料保護作業、事件記錄中只會記錄攔截故障事件(排程資料保護作業本身所產生的事件仍會記錄下來)。
-
如果 Astra Control Center 將複寫的來源應用程式容錯移轉至目的地應用程式、則在容錯移轉完成後、會針對目的地應用程式執行啟用的任何容錯移轉後執行攔截。
如果您在 Astra Control Center 23.04 上執行還原後掛勾、並將 Astra Control Center 升級至 23.07 、則容錯移轉複寫後將不再執行還原後執行掛勾。您需要為應用程式建立新的容錯移轉後執行掛鉤。或者、您也可以將用於容錯移轉的現有還原後掛鉤作業類型、從「還原後」變更為「容錯移轉後」。
執行順序
執行資料保護作業時、執行掛機事件會依照下列順序發生:
-
任何適用的自訂操作前執行掛勾都會在適當的容器上執行。您可以視需要建立及執行任意數量的自訂操作前掛勾、但在作業之前執行這些掛勾的順序既不保證也無法設定。
-
執行資料保護作業。
-
任何適用的自訂操作後執行掛勾都會在適當的容器上執行。您可以視需要建立及執行任意數量的自訂後置作業掛勾、但在作業後執行這些掛勾的順序並不保證也無法設定。
如果您建立同一類型的多個執行掛勾(例如預先快照)、則無法保證這些掛勾的執行順序。不過、不同類型的掛勾的執行順序也有保證。例如、具有所有不同類型勾點的組態執行順序如下:
-
執行備份前掛勾
-
執行快照前掛勾
-
快照後掛勾已執行
-
執行備份後掛勾
-
執行還原後的掛勾
如需此組態的範例、請參閱中表格的案例編號2 確定掛機是否會執行。
在正式作業環境中啟用執行攔截指令碼之前、請務必先進行測試。您可以使用'kubecl exec'命令來方便地測試指令碼。在正式作業環境中啟用執行掛勾之後、請測試所產生的快照和備份、以確保它們一致。您可以將應用程式複製到暫用命名空間、還原快照或備份、然後測試應用程式、藉此完成此作業。 |
確定掛機是否會執行
請使用下表協助判斷您的應用程式是否會執行自訂執行掛勾。
請注意、所有的高階應用程式作業都是執行快照、備份或還原等基本作業之一。視案例而定、複製作業可能由這些作業的各種組合組成、因此複製作業執行的執行掛勾內容會有所不同。
就地還原作業需要現有的快照或備份、因此這些作業不會執行快照或備份掛勾。
如果您先開始、然後取消包含快照的備份、並有相關的執行掛勾、有些掛勾可能會執行、有些則不會執行。這表示備份後執行掛勾無法假設備份已完成。請謹記以下幾點、以相關的執行掛勾來取消備份:
|
案例 | 營運 | 現有快照 | 現有備份 | 命名空間 | 叢集 | Snapshot hooks會執行 | 備份掛勾運轉 | 執行還原掛勾 | 容錯移轉攔截器執行中 |
---|---|---|---|---|---|---|---|---|---|
1. |
複製 |
n |
n |
新功能 |
相同 |
是 |
n |
是 |
n |
2. |
複製 |
n |
n |
新功能 |
與眾不同 |
是 |
是 |
是 |
n |
3. |
複製或還原 |
是 |
n |
新功能 |
相同 |
n |
n |
是 |
n |
4. |
複製或還原 |
n |
是 |
新功能 |
相同 |
n |
n |
是 |
n |
5. |
複製或還原 |
是 |
n |
新功能 |
與眾不同 |
n |
n |
是 |
n |
6. |
複製或還原 |
n |
是 |
新功能 |
與眾不同 |
n |
n |
是 |
n |
7. |
還原 |
是 |
n |
現有的 |
相同 |
n |
n |
是 |
n |
8. |
還原 |
n |
是 |
現有的 |
相同 |
n |
n |
是 |
n |
9. |
Snapshot |
不適用 |
不適用 |
不適用 |
不適用 |
是 |
不適用 |
不適用 |
n |
10. |
備份 |
n |
不適用 |
不適用 |
不適用 |
是 |
是 |
不適用 |
n |
11. |
備份 |
是 |
不適用 |
不適用 |
不適用 |
n |
n |
不適用 |
n |
12. |
容錯移轉 |
是 |
不適用 |
由複寫所建立 |
與眾不同 |
n |
n |
n |
是 |
13. |
容錯移轉 |
是 |
不適用 |
由複寫所建立 |
相同 |
n |
n |
n |
是 |
執行攔截範例
請造訪 "NetApp Verda GitHub專案" 可下載熱門應用程式的實際執行掛勾、例如Apache Cassandra和Elasticsearch。您也可以查看範例、瞭解如何建構您自己的自訂執行掛勾。
檢視現有的執行掛勾
您可以檢視應用程式的現有自訂執行掛勾。
-
移至*應用程式*、然後選取託管應用程式的名稱。
-
選取*執行掛勾*索引標籤。
您可以在結果清單中檢視所有已啟用或已停用的執行掛勾。您可以查看某個掛機的狀態、相符的容器數量、建立時間、以及何時執行(作業前或作業後)。您可以選取
+
勾號名稱旁的圖示、可展開要執行的容器清單。若要檢視與此應用程式執行掛勾相關的事件記錄、請前往*活動*索引標籤。
檢視現有的指令碼
您可以檢視現有上傳的指令碼。您也可以在此頁面上查看使用中的指令碼、以及使用這些指令碼的攔截器。
-
前往*帳戶*。
-
選取*指令碼*索引標籤。
您可以在此頁面上看到現有上傳指令碼的清單。「使用者」欄會顯示每個指令碼使用的執行掛勾。
新增指令碼
每個執行攔截都必須使用指令碼來執行動作。您可以新增一個或多個執行掛勾可以參考的指令碼。許多執行攔截器都可以參照相同的指令碼、只要變更一個指令碼、就能更新許多執行攔截器。
-
前往*帳戶*。
-
選取*指令碼*索引標籤。
-
選取*「Add*」。
-
執行下列其中一項:
-
上傳自訂指令碼。
-
選取*上傳檔案*選項。
-
瀏覽至檔案並上傳。
-
為指令碼指定唯一名稱。
-
(選用)輸入其他系統管理員應該知道的任何指令碼附註。
-
選取*儲存指令碼*。
-
-
從剪貼簿貼入自訂指令碼。
-
選取*貼上或類型*選項。
-
選取文字欄位、然後將指令碼文字貼到欄位中。
-
為指令碼指定唯一名稱。
-
(選用)輸入其他系統管理員應該知道的任何指令碼附註。
-
-
-
選取*儲存指令碼*。
新指令碼會出現在「指令碼」索引標籤的清單中。
刪除指令碼
如果指令碼不再需要、也不被任何執行掛勾使用、您可以從系統中移除指令碼。
-
前往*帳戶*。
-
選取*指令碼*索引標籤。
-
選擇要移除的指令碼、然後在*「Actions」(動作)*欄中選取功能表。
-
選擇*刪除*。
如果指令碼與一個或多個執行掛勾相關聯、則無法使用*刪除*動作。若要刪除指令碼、請先編輯相關的執行掛勾、然後將其與其他指令碼建立關聯。 |
建立自訂執行掛勾
您可以為應用程式建立自訂執行掛鉤、並將其新增至 Astra Control 。請參閱 執行攔截範例 如需攔截範例、您需要擁有擁有擁有者、管理員或成員權限、才能建立執行掛勾。
當您建立自訂Shell指令碼作為執行掛勾時、請記得在檔案開頭指定適當的Shell、除非您執行特定命令或提供執行檔的完整路徑。 |
-
選取*應用程式*、然後選取託管應用程式的名稱。
-
選取*執行掛勾*索引標籤。
-
選取*「Add*」。
-
在「勾號詳細資料」區域中:
-
從「作業」下拉式功能表中選取作業類型、以判斷掛機應在何時執行。
-
輸入掛機的唯一名稱。
-
(選用)輸入執行期間要傳遞至掛機的任何引數、並在您輸入的每個引數之後按Enter鍵以記錄每個引數。
-
-
(可選)在*勾選篩選器詳細資料*區域中、您可以新增篩選器來控制執行勾點所在的容器:
-
選取*新增篩選器*。
-
在*勾選篩選類型*欄中、從下拉式功能表中選擇要篩選的屬性。
-
在* Regex*欄中、輸入要做為篩選器的規則運算式。Astra Control使用 "規則運算式2(RE2)regex語法"。
如果您在規則運算式欄位中沒有其他文字的情況下、根據屬性的確切名稱(例如 Pod 名稱)進行篩選、則會執行子字串比對。若要完全符合名稱及名稱、請使用確切的字串相符語法(例如、 ^exact_podname$
)。 -
若要新增更多篩選條件、請選取*新增篩選條件*。
執行掛勾的多個篩選器會與邏輯和運算子結合使用。每個執行掛機最多可有10個作用中篩選器。
-
-
完成後、選取*下一步*。
-
在*指令碼*區域中、執行下列其中一項:
-
新增指令碼。
-
選取*「Add*」。
-
執行下列其中一項:
-
上傳自訂指令碼。
-
選取*上傳檔案*選項。
-
瀏覽至檔案並上傳。
-
為指令碼指定唯一名稱。
-
(選用)輸入其他系統管理員應該知道的任何指令碼附註。
-
選取*儲存指令碼*。
-
-
從剪貼簿貼入自訂指令碼。
-
選取*貼上或類型*選項。
-
選取文字欄位、然後將指令碼文字貼到欄位中。
-
為指令碼指定唯一名稱。
-
(選用)輸入其他系統管理員應該知道的任何指令碼附註。
-
-
-
-
從清單中選取現有的指令碼。
這會指示執行掛勾使用此指令碼。
-
-
選擇*下一步*。
-
檢閱執行掛機組態。
-
選取*「Add*」。
檢查執行掛勾的狀態
在快照、備份或還原作業完成執行之後、您可以檢查執行掛勾的狀態、該掛勾是執行作業的一部分。您可以使用此狀態資訊來判斷是否要保留執行掛勾、修改或刪除它。
-
選取*應用程式*、然後選取託管應用程式的名稱。
-
選取*資料保護*索引標籤。
-
選取* Snapshot*以查看執行中的快照、或選取*備份*以查看執行中的備份。
「掛機狀態」會顯示執行掛機在作業完成後執行的狀態。您可以將游標暫留在狀態上、以取得更多詳細資料。例如、如果快照期間發生執行掛機故障、則將游標移到該快照的掛機狀態上會顯示故障執行掛勾的清單。若要查看每次失敗的原因、您可以查看左側導覽區域的*活動*頁面。
檢視指令碼使用量
您可以在Astra Control Web UI中查看哪些執行掛勾使用特定指令碼。
-
選擇*帳戶*。
-
選取*指令碼*索引標籤。
指令碼清單中的「使用者」欄位包含清單中每個指令碼所使用之掛勾的詳細資料。
-
在「使用者」欄中選取您感興趣的指令碼資訊。
此時會出現更詳細的清單、其中包含使用指令碼的掛勾名稱、以及設定用來執行的作業類型。
編輯執行掛勾
如果您想要變更執行掛勾的屬性、篩選器或所使用的指令碼、您可以編輯執行掛勾。您需要擁有擁有擁有者、管理員或成員權限、才能編輯執行掛勾。
-
選取*應用程式*、然後選取託管應用程式的名稱。
-
選取*執行掛勾*索引標籤。
-
在「動作」欄中選取「選項」功能表、以選取您要編輯的掛勾。
-
選擇*編輯*。
-
完成每個區段後、請選擇*下一步*進行任何必要的變更。
-
選擇*保存*。
停用執行掛勾
如果您想要暫時避免在應用程式快照之前或之後執行、可以停用執行掛勾。您需要擁有擁有擁有者、管理員或成員權限、才能停用執行掛勾。
-
選取*應用程式*、然後選取託管應用程式的名稱。
-
選取*執行掛勾*索引標籤。
-
在「動作」欄中選取「選項」功能表、以顯示您要停用的掛勾。
-
選擇*停用*。
刪除執行掛勾
如果不再需要執行掛勾、您可以完全移除該掛勾。您需要擁有擁有擁有者、管理員或成員權限、才能刪除執行掛勾。
-
選取*應用程式*、然後選取託管應用程式的名稱。
-
選取*執行掛勾*索引標籤。
-
在「動作」欄中選取「選項」功能表、以選取您要刪除的掛勾。
-
選擇*刪除*。
-
在產生的對話方塊中、輸入「DELETE」進行確認。
-
選擇*是、刪除執行勾點*。