

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 維護 Flink 應用程式
<a name="jobruns-flink-maintain"></a>

**Topics**
+ [升級模式](#jobruns-flink-upgrademode)

Flink 應用程式通常設計為執行很長時間，例如數週、數月甚至數年。與所有長時間執行的服務一樣，Flink 串流應用程式需要進行維護。這包括錯誤修正、改善項目以及遷移至更高版本的 Flink 叢集。

當 `FlinkDeployment` 和 `FlinkSessionJob` 資源的規格發生變化時，您需要升級正在執行的應用程式。為此，操作員會停止正在執行的作業 (除非已暫停)，並使用最新規格重新部署，對於有狀態的應用程式，則使用上次執行的狀態。

使用者可透過 `JobSpec` 的 `upgradeMode` 設定來控制有狀態的應用程式停止和還原時如何管理狀態。

## 升級模式
<a name="jobruns-flink-upgrademode"></a>

選用介紹

**無狀態**  
無狀態應用程式從空狀態升級。

**最後狀態**  
在任何應用程式狀態下快速升級 (即使是失敗的作業) 時不需要運作正常的作業，因為一律會使用最新的成功檢查點。如果遺失 HA 中繼資料，可能需要手動復原。若要限制作業在擷取最新檢查點時回退的時間，您可以設定 `kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age`。如果檢查點早於設定的值，則會改為針對運作正常的作業採用儲存點。工作階段模式不支援此功能。

**儲存點**  
使用儲存點進行升級，可提供最大的安全性和作為備份/分叉點的可能性。儲存點將在升級過程中建立。請注意，需執行 Flink 作業才能建立儲存點。如果作業處於運作狀態不佳的狀態，則會使用最後一個檢查點 (除非 kubernetes.operator.job.upgrade.last-state-fallback.enabled 設定為 false)。如果最後一個檢查點無法使用，作業升級將會失敗。