1

我正在尝试在 kubernetes 上部署高可用的 flink 集群。在下面的示例中,工作节点被复制,但我们只有一个主 pod。

https://github.com/apache/flink-statefun

据我了解,有两种方法可以使作业经理 HA。

  1. https://ci.apache.org/projects/flink/flink-docs-stable/ops/jobmanager_high_availability.html
  2. https://medium.com/hepsiburadatech/high-available-flink-cluster-on-kubernetes-setup-73b2baf9200e

在第一个示例中,我们部署另一个作业管理器以在发生故障时在它们之间切换。在第二个示例中,kubernetes 重新部署作业管理器 pod 以防发生故障

所以我有几个问题

  • 对于这两个示例,当活动作业管理器失败时,正在运行的作业会发生什么情况?
  • 第一个场景可以应用在 kubernetes 上吗?
  • 对于作业管理器失败的第二种情况,flink UI 在 pod 恢复之前将不可用,但在第二种第一种情况下,它将可用,对吗?

  • 这两种情况的优缺点是什么?

4

1 回答 1

0

有一种方法可以使作业管理器 HA,您的两个链接都使用 JM HA,使用 zookeeper 集群来制作 JM 的活动/备用架构。

  1. 当 JobManager 失败时,如 apache flink 文档(第一个链接)中描述的“故障转移”,备用 JM 变为活动状态。
  2. 当然,kubernetes 只是整个 Flink 集群的部署,你仍然可以使用 zk 的 HA 集群模式。
  3. 不,两者都会进行“故障转移”,备用 JM 将变为活动状态。

你不明白 kubernetes 只是 flink 的部署集群,就像你可以部署在物理/虚拟服务器上一样,你可以部署在 kubernetes 上,但是像 High Aviability 这样的东西会保持不变。

编辑:您可以在 JobManager 的 kubernetes 中制作 2 个或更多 pod,然后它将等于第一个解决方案。

于 2020-05-21T17:25:30.797 回答