【问题标题】:How to achieve JobManager High Availability in a Kubernetes Flink Cluster?如何在 Kubernetes Flink 集群中实现 JobManager 高可用?
【发布时间】:2018-08-20 06:09:48
【问题描述】:

Flink 官方文档为 Standalone 和 Yarn Flink 集群提供了jobmanager high availability 的解决方案。但是如何使用 Kubernetes Flink 集群实现高可用性呢?

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

【问题讨论】:

标签: kubernetes apache-flink


【解决方案1】:

official doc says说job manager的高可用是为了处理job manager崩溃的情况。因此,只需要一个作业经理,但您想处理它出现故障的情况。在 Kubernetes 上,如果它出现故障,那么 Kubernetes 应该检测到这一点并自动重新启动它。所以你不需要运行更多的副本。

(文档说这是explicitly about using yarn for ha。它似乎没有声明它适用于Kubernetes,但重启失败的Pods是standard behaviour for Kubernetes。)

任务管理器默认配置为在官方 k8s 资源中使用 Kubernetes 上的多个副本运行(请参阅“副本”条目in the resources),但作业管理器不是。 (它是same in the helm chart。)所以我认为作业经理不需要它 - 我建议使用单个作业经理运行,除非您遇到特定问题。

【讨论】:

  • 感谢您的解释。
  • kubernetes 如果作业管理器失败但作业消失了,它会重新启动它。我错过了什么?
  • @offroff 在这种情况下,听起来作业管理器只是将作业状态存储在 Pod 中,而不是更持久的持久性 - 请参阅 stackoverflow.com/questions/52104759/…
【解决方案2】:

我同意 Ryan 关于 Kubernetes 满足 HA 部署的大部分要求这一事实的回答。

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

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

那些解释correctly deploying a flink job cluster on k8sachieving file based high availability without zookeeper 的博文也可能有用。

(披露:我写了帖子并设置了 repo)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多