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 に設定されている場合を除く)。最後のチェックポイントが利用できない場合、ジョブのアップグレードは失敗します。