Kubernetes 高可用服务

Flink 的 Kubernetes 高可用模式使用 Kubernetes 提供高可用服务。

Kubernetes 高可用服务只能在部署到 Kubernetes 时使用。因此,当使用 在 Kubernetes 上单节点部署 FlinkFlink 原生 Kubernetes 集成 两种模式时,可以对它们进行配置。

准备

为了使用 Flink 的 Kubernetes 高可用服务,你必须满足以下先决条件:

配置

为了启用高可用集群(HA-cluster),你必须设置以下配置项:

  • high-availability (必要的): high-availability 选项必须设置为 KubernetesHaServicesFactory.
  1. high-availability: kubernetes
  • high-availability.storageDir (必要的): JobManager 元数据持久化到文件系统 high-availability.storageDir 配置的路径中,并且在 Kubernetes 中只能有一个目录指向此位置。
  1. high-availability.storageDir: s3://flink/recovery

storageDir 存储要从 JobManager 失败恢复时所需的所有元数据。

  1. kubernetes.cluster-id: cluster1337

配置示例

conf/flink-conf.yaml 中配置高可用模式:

  1. kubernetes.cluster-id: <cluster-id>
  2. high-availability: kubernetes
  3. high-availability.storageDir: hdfs:///flink/recovery

高可用数据清理

要在重新启动 Flink 集群时保留高可用数据,只需删除部署(通过 kubectl delete deployment <cluster-id>)。所有与 Flink 集群相关的资源将被删除(例如:JobManager Deployment、TaskManager pods、services、Flink conf ConfigMap)。高可用相关的 ConfigMaps 将被保留,因为它们没有设置所有者引用。当重新启动集群时,所有以前运行的作业将从最近成功的检查点恢复并重新启动。