Flink Statefun HA kubernetes集群

Flink Statefun HA kubernetes集群,kubernetes,apache-flink,high-availability,flink-statefun,Kubernetes,Apache Flink,High Availability,Flink Statefun,我正在尝试在kubernetes上部署高可用的flink群集。在下面的示例中,工作节点被复制,但我们只有一个主pod 据我所知,有两种方法可以让job manager成为HA 在第一个示例中,我们部署了另一个作业管理器,以在发生故障时在它们之间切换 在第二个示例中,kubernetes在出现故障时重新部署作业管理器pod 所以我有几个问题 对于这两个示例,当活动作业管理器失败时,正在运行的作业会发生什么情况 第一种情况可以应用于库伯内特斯吗 对于作业管理器故障的第二种情况,在pod恢复之

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

据我所知,有两种方法可以让job manager成为HA

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

    所以我有几个问题

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

    • 这两种方案的优缺点是什么


    有一种方法可以使job manager成为HA,您的两个链接都是使用JM HA使用zookeeper集群来创建JM的主/备用架构

  • 当JobManager出现故障时,会出现“故障转移”,如apache flink文档(第一个链接)中所述,备用JM将变为活动状态
  • 当然,kubernetes只是整个Flink集群的部署,您仍然可以使用HA集群模式使用zk
  • 否,两者都将进行“故障切换”,并且备用JM将变为活动状态
  • 你不知道kubernetes只是flink的部署集群,就像你可以在物理/虚拟服务器上部署它一样,而你可以在kubernetes上部署它,但是像高可用性这样的东西将保持不变

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

    有一种方法可以创建job manager HA,您的两个链接都是使用JM HA和zookeeper群集来创建JM的主/备用架构

  • 当JobManager出现故障时,会出现“故障转移”,如apache flink文档(第一个链接)中所述,备用JM将变为活动状态
  • 当然,kubernetes只是整个Flink集群的部署,您仍然可以使用HA集群模式使用zk
  • 否,两者都将进行“故障切换”,并且备用JM将变为活动状态
  • 你不知道kubernetes只是flink的部署集群,就像你可以在物理/虚拟服务器上部署它一样,而你可以在kubernetes上部署它,但是像高可用性这样的东西将保持不变

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

    在第二个示例中,JM的复制因子为1。他们是否依赖库伯内特重新部署失败的吊舱,因为他们没有备用JM。假设我们将JM的复制值更改为2,我们如何相应地配置zookeeper。是的,它们依赖于立即重置失败的pod并从zookeeper读取状态。如果您将JM的复制因子更改为2,那么它的行为将类似于第一个链接,如果活动JM的pod将崩溃,则第二个pod将变为活动状态(但这里您还需要重新启动失败的pod)。我看不出有什么理由保留一个JM吊舱(除了节省一些资源外),但我想它会起作用。(当然,这取决于吊舱重启的速度)。这是我最初计划的,但当我们重新部署失败的吊舱时,吊舱的IP将发生变化。动态配置这是一个问题。我没有看到任何问题,吊舱IP将被改变,为什么这是一个问题?您的任务经理在服务公开的情况下与jobmanager交谈。任何关于如何动态地、单独地获取服务后面的复制POD的ip地址的来源都是值得赞赏的。在第二个示例中,JM的复制因子是1。他们是否依赖库伯内特重新部署失败的吊舱,因为他们没有备用JM。假设我们将JM的复制值更改为2,我们如何相应地配置zookeeper。是的,它们依赖于立即重置失败的pod并从zookeeper读取状态。如果您将JM的复制因子更改为2,那么它的行为将类似于第一个链接,如果活动JM的pod将崩溃,则第二个pod将变为活动状态(但这里您还需要重新启动失败的pod)。我看不出有什么理由保留一个JM吊舱(除了节省一些资源外),但我想它会起作用。(当然,这取决于吊舱重启的速度)。这是我最初计划的,但当我们重新部署失败的吊舱时,吊舱的IP将发生变化。动态配置这是一个问题。我没有看到任何问题,吊舱IP将被改变,为什么这是一个问题?您的任务经理在服务公开的情况下与jobmanager交谈。任何关于如何动态地、单独地获取服务后面的复制POD的ip地址的来源都将受到赞赏。