本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
維護 Flink 應用程式
主題
Flink 應用程式通常設計為執行很長時間,例如數週、數月甚至數年。與所有長時間執行的服務一樣,Flink 串流應用程式需要進行維護。這包括錯誤修正、改善項目以及遷移至更高版本的 Flink 叢集。
當 FlinkDeployment
和 FlinkSessionJob
資源的規格發生變化時,您需要升級正在執行的應用程式。為此,操作員會停止正在執行的作業 (除非已暫停),並使用最新規格重新部署,對於有狀態的應用程式,則使用上次執行的狀態。
使用者可透過 JobSpec
的 upgradeMode
設定來控制有狀態的應用程式停止和還原時如何管理狀態。
升級模式
選用介紹
- 無狀態
-
無狀態應用程式從空狀態升級。
- 最後狀態
-
在任何應用程式狀態下快速升級 (即使是失敗的作業) 時不需要運作正常的作業,因為一律會使用最新的成功檢查點。如果遺失 HA 中繼資料,可能需要手動復原。若要限制作業在擷取最新檢查點時回退的時間,您可以設定
kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age
。如果檢查點早於設定的值,則會改為針對運作正常的作業採用儲存點。工作階段模式不支援此功能。 - 儲存點
-
使用儲存點進行升級,可提供最大的安全性和作為備份/分叉點的可能性。儲存點將在升級過程中建立。請注意,需執行 Flink 作業才能建立儲存點。如果任務處於運作狀態不佳狀態,則會使用最後一個檢查點 (除非 kubernetes.operator.job.upgrade.last-state-fallback.enabled 設定為 false)。如果最後一個檢查點無法使用,作業升級將會失敗。