Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在Kubernetes中运行具有高可用性、检查点和保存点的单容器Flink集群?_Kubernetes_Apache Flink_High Availability - Fatal编程技术网

是否可以在Kubernetes中运行具有高可用性、检查点和保存点的单容器Flink集群?

是否可以在Kubernetes中运行具有高可用性、检查点和保存点的单容器Flink集群?,kubernetes,apache-flink,high-availability,Kubernetes,Apache Flink,High Availability,我目前正在运行一个Flink会话集群(Kubernetes,1个JobManager,1个TaskManager,Zookeeper,S3),其中运行多个作业 随着我们努力增加更多的工作岗位,我们希望改进我们的部署和集群管理策略。我们正在考虑迁移到使用作业集群,但是对于将生成的容器数量有保留。每个作业一个容器不是问题,但每个作业两个容器(1个JM和1个TM)会引起内存消耗的担忧。其中一些作业需要高可用性,以及在通过窗口聚合事件时使用检查点和从/获取保存点进行恢复的能力 从我阅读的文档和花在谷歌上

我目前正在运行一个Flink会话集群(Kubernetes,1个JobManager,1个TaskManager,Zookeeper,S3),其中运行多个作业

随着我们努力增加更多的工作岗位,我们希望改进我们的部署和集群管理策略。我们正在考虑迁移到使用作业集群,但是对于将生成的容器数量有保留。每个作业一个容器不是问题,但每个作业两个容器(1个JM和1个TM)会引起内存消耗的担忧。其中一些作业需要高可用性,以及在通过窗口聚合事件时使用检查点和从/获取保存点进行恢复的能力

从我阅读的文档和花在谷歌上的时间来看,我并没有发现任何东西能够说明所考虑的是否真的是可能的

是否可以执行以下三项操作之一:

  • 在同一容器中作为单独的进程运行JobManager和TaskManager,并将其用作Flink群集,或
  • 将JobManager和TaskManager作为同一进程运行,或
  • 将作业作为独立的JAR运行,能够从/获取检查点进行恢复,并且能够获取保存点并从该保存点进行恢复

  • (如果有人有更好的想法,我洗耳恭听。)

    检查这一点,它将自动在Kubernetes部署和管理Flink的生命周期。该项目是测试版,但你仍然可以得到一些关于如何做的想法,或直接使用这个运营商,如果它符合你的要求。在这里,作业管理器和任务管理器是独立的kubernetes部署。

    请检查这一点,这将自动化kubernetes中部署和管理Flink的生命周期。该项目是测试版,但你仍然可以得到一些关于如何做的想法,或直接使用这个运营商,如果它符合你的要求。此处作业管理器和任务管理器是单独的kubernetes部署。

    作业管理器的职责之一是监视任务管理器,并在出现故障时启动重启。当JM和TMs在单独的容器中时,它在容器化环境中运行良好;否则看起来你是在自找麻烦。如果您打算扩大规模,将TMs分开也是有意义的,尽管这在您的案例中可能没有实际意义

    不过,可行的方法是使用LocalExecutionEnvironment运行作业(这样所有内容都在一个进程中--有时称为Flink微型集群)。如果你愿意,我觉得这条路是可行的,但我不能推荐。您必须以某种方式跟踪检查点,并在出现故障时安排容器从检查点重新启动。还有其他一些可能不太好用的东西——请参阅以了解详细信息。LocalExecutionEnvironment在设计时没有考虑到生产部署


    我建议您研究一下,看看您可以在多大程度上使标准的、独立的容器解决方案变得经济实惠。首先,您应该能够用最少的资源运行JM,因为它没有太多的工作要做

    作业管理器的职责之一是监视任务管理器,并在出现故障时启动重新启动。当JM和TMs在单独的容器中时,它在容器化环境中运行良好;否则看起来你是在自找麻烦。如果您打算扩大规模,将TMs分开也是有意义的,尽管这在您的案例中可能没有实际意义

    不过,可行的方法是使用LocalExecutionEnvironment运行作业(这样所有内容都在一个进程中--有时称为Flink微型集群)。如果你愿意,我觉得这条路是可行的,但我不能推荐。您必须以某种方式跟踪检查点,并在出现故障时安排容器从检查点重新启动。还有其他一些可能不太好用的东西——请参阅以了解详细信息。LocalExecutionEnvironment在设计时没有考虑到生产部署

    我建议您研究一下,看看您可以在多大程度上使标准的、独立的容器解决方案变得经济实惠。首先,您应该能够用最少的资源运行JM,因为它没有太多的工作要做