

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 维护 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`。如果检查点早于配置的值，则对于运行正常的作业，系统将获取其保存点。在会话模式下，不支持此功能。

**保存点**  
使用 savepoint 进行升级，提供最大的安全性和充当积分的可能性。 backup/fork 升级过程中，系统将创建保存点。请注意，Flink 作业必须正在运行，才能创建保存点。如果作业处于不健康状态，则将使用最后一个检查点（除非 kubernetes.operator.job.upgrade）。 last-state-fallback.enabled 设置为 false）。如果最后一个检查点不可用，则作业升级将失败。