如何在Kubernetes Flink集群中实现JobManager高可用性?

时间:2018-08-20 06:09:48

标签: kubernetes apache-flink

Flink官方文档为独立和纱线Flink群集提供了jobmanager high availability解决方案。但是,使用Kubernetes Flink集群如何实现高可用性?

从文档的Kubernetes Setup部分看来,当我们部署到Kubernetes集群时,似乎只部署了一个Jobmanager。那么如何为Kubernetes Flink集群实现HA?

2 个答案:

答案 0 :(得分:4)

official doc says对作业管理器来说高可用性是为了处理作业管理器崩溃的情况。因此,只需要一个工作经理,但是您要处理出现问题的情况。在Kubernetes上,如果它出现故障,则Kubernetes应该检测到并自动重启它。因此,您不需要运行它的更多副本。

(文档说explicitly about using yarn for ha。对于Kubernetes来说似乎没有声明,但是重启失败的Pod是standard behaviour for Kubernetes。)

默认情况下,任务管理器配置为在k8s官方资源中的Kubernetes上与多个副本一起运行(请参见“副本”条目in the resources),而作业管理器则没有。 (它是same in the helm chart。)因此,我认为作业经理不需要使用它-我建议由一个作业经理来运行,除非您遇到一些具体的问题。

答案 1 :(得分:1)

对于Kubernetes满足HA部署的大多数要求这一事实,我同意Ryan的回答。

使用Kubernetes,您可以使用基于文件的HA运行Flink作业集群,而不是使用ZooKeeper或其等效版本。

您可以在this github repo中找到有关如何正确设置(无论是否具有HA)的示例。

也许还有一些有用的博客文章,它们解释了correctly deploying a flink job cluster on k8sachieving file based high availability without zookeeper

(披露:我写了帖子并设置了存储库)