Kubernetes HA 서비스

Kubernetes HA 서비스 (Kubernetes HA Services)

Flink의 Kubernetes HA 서비스는 고가용성 서비스를 위해 Kubernetes를 사용해요. Kubernetes 고가용성 서비스는 Kubernetes에 배포할 때만 사용할 수 있어요. 따라서 Kubernetes의 standalone Flink 또는 네이티브 Kubernetes 통합을 사용할 때 구성할 수 있어요.

출처: 문서

본문

전제 조건 (Prerequisites)

Flink의 Kubernetes HA 서비스를 사용하려면 다음 전제 조건을 충족해야 해요:

구성 (Configuration)

HA 클러스터를 시작하려면 다음 구성 키를 설정해야 해요:

high-availability.type: kubernetes
  • high-availability.storageDir (필수): JobManager 메타데이터는 파일 시스템의 high-availability.storageDir에 영속화되고, 이 상태에 대한 포인터만 Kubernetes에 저장돼요.
high-availability.storageDir: s3://flink/recovery

storageDir은 JobManager 장애 복구에 필요한 모든 메타데이터를 저장해요.

  • kubernetes.cluster-id (필수): Flink 클러스터를 식별하기 위해 kubernetes.cluster-id를 지정해야 해요.
kubernetes.cluster-id: cluster1337

구성 예제 (Example configuration)

Flink 구성 파일에서 고가용성 모드를 구성해요:

kubernetes.cluster-id: <cluster-id>
high-availability.type: kubernetes
high-availability.storageDir: hdfs:///flink/recovery

고가용성 데이터 정리 (High availability data clean up)

Flink 클러스터를 재시작할 때 HA 데이터를 유지하려면 배포를 삭제하면 돼요(kubectl delete deployment <cluster-id>). Flink 클러스터와 관련된 모든 리소스(JobManager Deployment, TaskManager pod, 서비스, Flink conf ConfigMap)가 삭제돼요. HA 관련 ConfigMap은 owner reference를 설정하지 않으므로 유지돼요. 클러스터를 재시작하면 이전에 실행 중이던 모든 작업이 최신 성공 체크포인트부터 복구되고 다시 시작돼요.

더 알아보기 (Learn more)