Flink1.11 Native K8S和Application Mode本地环境搭建及使用

2020年7月发布Flink 1.11版本的时候,平台正在接入K8S Per Job模式,新发版本的Application Mode 正好应了我们的需求,

Session模式

flink集群已经提前启动,利用现存的集群资源去执行提交的job,这样会导致在同一个集群上执行多个job,多个job相互竞争集群资源,此外,如果有一个job发生异常或者导致TaskManager关闭,那这个TaskManager上的所有的job都会重启,除了对作业本身的影响外,还意味着在大量job重启的过程中,所有job同时访问文件系统,导致文件系统对其他服务不可用,同一个集群上的所有job对所有人可见,集群指标(比如CPU利用率)是针对所有job的,而不是针对单个job。FlinkOps平台0.1.0版本就是基于Session模式实现的。

Per-Job模式

考虑到Session模式无法做到资源隔离,因此用户经常使用的是Per-Job模式。在这个模式中,YARN或Kubernetes等可用的集群管理器会为每一个提交的job启动一个单独的Flink集群,这个集群上只有这一个job。为了解决FlinkOps0.1.0版本中资源隔离的问题,FlinkOps0.2.0版本基于K8S Native Per-Job模式去实现此功能。

K8S Per-Job模式

Not Native Per-Job模式

需要提前指定 TaskManager 的数量,如果 TaskManager 指定的少了会导致作业运行失败,指定的多了仍会降低资源利用率

猜你喜欢

转载自blog.csdn.net/MissWYAN/article/details/108866329