Flink官方文档为独立和纱线Flink群集提供了jobmanager high availability解决方案。但是,使用Kubernetes Flink集群如何实现高可用性?
从文档的Kubernetes Setup部分看来,当我们部署到Kubernetes集群时,似乎只部署了一个Jobmanager。那么如何为Kubernetes Flink集群实现HA?
答案 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 k8s和achieving file based high availability without zookeeper。
(披露:我写了帖子并设置了存储库)