Kubernetes 高可用服务

Kubernetes 高可用服务 #

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

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

准备 #

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

配置 #

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

  • high-availability (必要的): high-availability 选项必须设置为 KubernetesHaServicesFactory.
high-availability: 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

配置示例 #

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

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

Back to top

高可用数据清理 #

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

Back to top