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

如何在Kubernetes-Flink集群中实现JobManager的高可用性?,kubernetes,apache-flink,Kubernetes,Apache Flink,Flink官方文档为独立的Flink集群和纱线Flink集群提供了解决方案。但是,使用Kubernetes-Flink群集实现高可用性应该做些什么呢 从文档的这一部分来看,在部署到Kubernetes集群时,我们似乎只部署了一个Jobmanager。那么,如何为Kubernetes-Flink群集实现HA呢?作业管理器的高可用性是为了处理作业管理器崩溃的情况。因此,只需要一个工作经理,但您希望处理出现问题的情况。在Kubernetes上,如果发生故障,Kubernetes应检测到并自动重新启动。

Flink官方文档为独立的Flink集群和纱线Flink集群提供了解决方案。但是,使用Kubernetes-Flink群集实现高可用性应该做些什么呢

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

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

(医生是这么说的。它似乎没有对库伯内特斯说,但重启失败的吊舱是正确的。)


默认情况下,任务管理器配置为在k8s官方资源中的Kubernetes上运行多个副本(请参阅“副本”条目),但作业管理器不是。(这就是答案。)所以我认为工作经理不需要这样做——我建议与一个工作经理一起运行,除非你遇到了具体的问题

我同意Ryan的回答,即Kubernetes满足HA部署的大部分要求

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

您可以在中找到如何正确设置它(有或没有HA)的示例

你可能也会发现那些解释和的博客文章很有用


(披露:我写了帖子并建立了回购协议)

谢谢你的解释。如果jobmanager失败但作业消失,kubernetes将重新启动jobmanager。我遗漏了什么?@offroff在这种情况下,听起来作业管理器只是将作业状态存储在Pod中,而不是存储到更持久的持久性中——请看,我已经使用Kubernetes清单创建了一个用于运行Flink in的实例,使用它代替Zookeeper(可以由正确的Zookeeper部署替代)。它使用Kubernetes将Flink数据持久化到磁盘。链接: