Flink 애플리케이션 유지 관리 - Amazon EMR

Flink 애플리케이션 유지 관리

Flink 애플리케이션은 일반적으로 몇 주, 몇 달 또는 몇 년 등 장기간 실행되도록 설계되었습니다. 모든 장기 실행 서비스와 마찬가지로 Flink 스트리밍 애플리케이션에도 유지 관리가 필요합니다. 유지 관리는 버그 수정, 개선 및 이후 버전의 Flink 클러스터로의 마이그레이션을 포함합니다.

FlinkDeploymentFlinkSessionJob 리소스에 대한 사양이 변경될 경우 실행 중인 애플리케이션을 업그레이드해야 합니다. 이 작업을 수행하기 위해 운영자는 (이미 일시 중단된 경우를 제외하고) 실행 중인 작업을 중지하고 해당 작업을 최신 사양을 이용해 다시 배포하고, 상태 저장 애플리케이션의 경우에는 이전 실행의 상태를 이용해 다시 배포합니다.

사용자는 상태 저장 애플리케이션이 중지되고 JobSpecupgradeMode 설정을 이용해 복원될 때 상태를 관리하는 방법을 제어합니다.

선택적 도입

상태 비저장

빈 상태에서의 상태 비저장 애플리케이션 업그레이드입니다.

마지막 상태

모든 애플리케이션 상태(실패한 작업 포함)의 간편 업그레이드에서는 항상 가장 최근에 성공한 체크포인트를 사용하기 때문에 정상 작업이 필요하지 않습니다. HA 메타데이터가 손실된 경우에는 수동으로 복구해야 할 수 있습니다. 최신 체크포인트를 선택할 때 작업이 대체될 수 있는 시간을 제한하기 위해 kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age를 구성할 수 있습니다. 체크포인트가 구성된 값보다 오래된 경우 정상 작업에 대한 세이브포인트가 대신 사용됩니다. 세션 모드에서는 이 작업이 지원되지 않습니다.

세이브포인트

업그레이드를 위해 세이브포인트를 사용하여 최대한의 안전성과 백업/포크 포인트로 사용될 가능성을 제공합니다. 업그레이드 프로세스가 진행되는 동안 세이브포인트가 생성됩니다. 세이브포인트가 생성되도록 하려면 Flink 작업이 실행 중이어야 합니다. 작업이 비정상 상태인 경우 마지막 체크포인트가 사용됩니다(kubernetes.operator.job.upgrade.last-state-fallback.enabled가 false로 설정된 경우는 제외). 마지막 체크포인트를 사용할 수 없다면 작업 업그레이드가 실패합니다.