是否可以在Kubernetes中运行具有高可用性、检查点和保存点的单容器Flink集群?
我目前正在运行一个Flink会话集群(Kubernetes,1个JobManager,1个TaskManager,Zookeeper,S3),其中运行多个作业 随着我们努力增加更多的工作岗位,我们希望改进我们的部署和集群管理策略。我们正在考虑迁移到使用作业集群,但是对于将生成的容器数量有保留。每个作业一个容器不是问题,但每个作业两个容器(1个JM和1个TM)会引起内存消耗的担忧。其中一些作业需要高可用性,以及在通过窗口聚合事件时使用检查点和从/获取保存点进行恢复的能力 从我阅读的文档和花在谷歌上的时间来看,我并没有发现任何东西能够说明所考虑的是否真的是可能的 是否可以执行以下三项操作之一:是否可以在Kubernetes中运行具有高可用性、检查点和保存点的单容器Flink集群?,kubernetes,apache-flink,high-availability,Kubernetes,Apache Flink,High Availability,我目前正在运行一个Flink会话集群(Kubernetes,1个JobManager,1个TaskManager,Zookeeper,S3),其中运行多个作业 随着我们努力增加更多的工作岗位,我们希望改进我们的部署和集群管理策略。我们正在考虑迁移到使用作业集群,但是对于将生成的容器数量有保留。每个作业一个容器不是问题,但每个作业两个容器(1个JM和1个TM)会引起内存消耗的担忧。其中一些作业需要高可用性,以及在通过窗口聚合事件时使用检查点和从/获取保存点进行恢复的能力 从我阅读的文档和花在谷歌上
(如果有人有更好的想法,我洗耳恭听。)检查这一点,它将自动在Kubernetes部署和管理Flink的生命周期。该项目是测试版,但你仍然可以得到一些关于如何做的想法,或直接使用这个运营商,如果它符合你的要求。在这里,作业管理器和任务管理器是独立的kubernetes部署。请检查这一点,这将自动化kubernetes中部署和管理Flink的生命周期。该项目是测试版,但你仍然可以得到一些关于如何做的想法,或直接使用这个运营商,如果它符合你的要求。此处作业管理器和任务管理器是单独的kubernetes部署。作业管理器的职责之一是监视任务管理器,并在出现故障时启动重启。当JM和TMs在单独的容器中时,它在容器化环境中运行良好;否则看起来你是在自找麻烦。如果您打算扩大规模,将TMs分开也是有意义的,尽管这在您的案例中可能没有实际意义 不过,可行的方法是使用LocalExecutionEnvironment运行作业(这样所有内容都在一个进程中--有时称为Flink微型集群)。如果你愿意,我觉得这条路是可行的,但我不能推荐。您必须以某种方式跟踪检查点,并在出现故障时安排容器从检查点重新启动。还有其他一些可能不太好用的东西——请参阅以了解详细信息。LocalExecutionEnvironment在设计时没有考虑到生产部署
我建议您研究一下,看看您可以在多大程度上使标准的、独立的容器解决方案变得经济实惠。首先,您应该能够用最少的资源运行JM,因为它没有太多的工作要做 作业管理器的职责之一是监视任务管理器,并在出现故障时启动重新启动。当JM和TMs在单独的容器中时,它在容器化环境中运行良好;否则看起来你是在自找麻烦。如果您打算扩大规模,将TMs分开也是有意义的,尽管这在您的案例中可能没有实际意义 不过,可行的方法是使用LocalExecutionEnvironment运行作业(这样所有内容都在一个进程中--有时称为Flink微型集群)。如果你愿意,我觉得这条路是可行的,但我不能推荐。您必须以某种方式跟踪检查点,并在出现故障时安排容器从检查点重新启动。还有其他一些可能不太好用的东西——请参阅以了解详细信息。LocalExecutionEnvironment在设计时没有考虑到生产部署 我建议您研究一下,看看您可以在多大程度上使标准的、独立的容器解决方案变得经济实惠。首先,您应该能够用最少的资源运行JM,因为它没有太多的工作要做