Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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
Docker 如何处理flink管理和k8s管理_Docker_Kubernetes_Deployment_Apache Flink - Fatal编程技术网

Docker 如何处理flink管理和k8s管理

Docker 如何处理flink管理和k8s管理,docker,kubernetes,deployment,apache-flink,Docker,Kubernetes,Deployment,Apache Flink,我正在考虑用K8部署Flink。我是Flink的新手,有一个简单的问题: 我使用K8s管理dockers,并将TaskManager部署到dockers中 据我所知,docker在失败时可以由K8s重新启动,任务在失败时可以由Flink重新启动 如果一个任务在docker的容器中运行,并且该容器由于某种原因突然失败,在Flink看来,任务失败了,因此应该重新启动该任务,而在K8s看来,容器失败了,因此docker应该重新启动。在这种情况下,我们是否应该担心由于两种“重新启动”而导致的冲突?我想您

我正在考虑用K8部署Flink。我是Flink的新手,有一个简单的问题:

我使用K8s管理dockers,并将TaskManager部署到dockers中

据我所知,docker在失败时可以由K8s重新启动,任务在失败时可以由Flink重新启动


如果一个任务在docker的容器中运行,并且该容器由于某种原因突然失败,在Flink看来,任务失败了,因此应该重新启动该任务,而在K8s看来,容器失败了,因此docker应该重新启动。在这种情况下,我们是否应该担心由于两种“重新启动”而导致的冲突?

我想您应该在这里阅读官方的kubernetes安装指南:

它描述了3种让它工作的方法:

  • :这涉及到在附录中旋转2个部署,并要求您在开始时手动或通过脚本提交Flink作业。这与开发时的本地独立集群非常相似,只是它现在位于kubernetes集群中

  • :通过将Flink部署为k8s作业,可以消除作业提交步骤

  • :从外观上看,该项目已有2年没有更新此信息,因此您的里程数可能会有所不同

  • 我已经成功地使用了会话集群,但我最终还是想尝试“正确”的方法,即使用第二种方法(从外观上看)将其部署为kubernetes作业

    根据你的Flink来源和失败的类型,你的Flink工作会以不同的方式失败。你不应该担心“冲突”。要么Kubernetes将重新启动容器,要么Flink将处理它可能处理的错误。经过一定程度的重试后,它将取消,具体取决于您对此的配置方式。有关更多详细信息,请参阅。如果容器退出时代码不是0,Kubernetes将尝试重新启动它。但是,它可能会重新提交作业,也可能不会重新提交作业,这取决于您是否在作业群集中部署了作业,或者您是否有用于所用映像的初始化脚本。在会话集群中,这可能会有问题,具体取决于作业提交是通过任务管理器还是作业管理器完成的。如果作业是通过任务管理器提交的,那么我们需要取消现有的失败作业,以便重新提交的作业可以启动

    注意:如果您确实使用了会话群集,并且有一个基于文件系统的有状态后端(非RocksDB有状态后端),那么您需要找到一种方法,让作业管理器和任务管理器共享一个会话


    如果任务管理器使用作业管理器无法访问的检查点目录,则任务管理器的持久性层将建立起来,并最终导致某种磁盘空间不足错误。如果您决定使用RocksDB并启用增量检查点,这可能不是问题。我想您应该在这里阅读官方的kubernetes设置指南:

    它描述了3种让它工作的方法:

  • :这涉及到在附录中旋转2个部署,并要求您在开始时手动或通过脚本提交Flink作业。这与开发时的本地独立集群非常相似,只是它现在位于kubernetes集群中

  • :通过将Flink部署为k8s作业,可以消除作业提交步骤

  • :从外观上看,该项目已有2年没有更新此信息,因此您的里程数可能会有所不同

  • 我已经成功地使用了会话集群,但我最终还是想尝试“正确”的方法,即使用第二种方法(从外观上看)将其部署为kubernetes作业

    根据你的Flink来源和失败的类型,你的Flink工作会以不同的方式失败。你不应该担心“冲突”。要么Kubernetes将重新启动容器,要么Flink将处理它可能处理的错误。经过一定程度的重试后,它将取消,具体取决于您对此的配置方式。有关更多详细信息,请参阅。如果容器退出时代码不是0,Kubernetes将尝试重新启动它。但是,它可能会重新提交作业,也可能不会重新提交作业,这取决于您是否在作业群集中部署了作业,或者您是否有用于所用映像的初始化脚本。在会话集群中,这可能会有问题,具体取决于作业提交是通过任务管理器还是作业管理器完成的。如果作业是通过任务管理器提交的,那么我们需要取消现有的失败作业,以便重新提交的作业可以启动

    注意:如果您确实使用了会话群集,并且有一个基于文件系统的有状态后端(非RocksDB有状态后端),那么您需要找到一种方法,让作业管理器和任务管理器共享一个会话


    如果任务管理器使用作业管理器无法访问的检查点目录,则任务管理器的持久性层将建立起来,并最终导致某种磁盘空间不足错误。如果您决定使用RocksDB并启用增量检查点,这可能不是问题。

    一个“docker”不是一件事。Docker是一种管理/运行容器(容器运行时)的软件。kubernetes现在可以使用许多容器运行时<代码>s/docker/container/g很抱歉,我不知道flink是如何管理任务的!这是关于Docker守护进程失败的问题,还是关于容器中运行的特定进程的问题?@DavidMaze我的意思是容器失败。“Docker”不是一回事。Docker是一种管理/运行容器(容器运行时)的软件。kubernetes现在可以使用许多容器运行时<代码>s/docker/container/g很抱歉,我不知道flink是如何管理任务的!这是关于Docker守护进程失败的问题,还是容器中运行的特定进程的问题?@DavidMaze我的意思是容器失败。为什么说“作业集群”是正确的方法?您的声明是否表示“Se”