
-
在kubernetes上有两种方式运行flink:session cluster和job cluster,其中session cluster是一套服务可以提交多个任务,而job cluster则是一套服务只对应一个任务;
-
下图是典型的session cluster部署操作,可见关键是准备好service、deployment等资源的yaml文件,再用kubectl命令创建:

关于Flink Native Kubernetes
- 先对比官方的1.9和1.10版本文档,如下图和红框和蓝框所示,可见Flink Native Kubernetes是1.10版本才有的新功能:

- 看看Native Kubernetes是如何运行的,如下图,创建session cluster的命令来自Flink安装包:

- 更有趣的是,提交任务的命令也来自Flink安装包,就是我们平时提交任务用到flink run命令,如下图:

- 结合官方给出的提交和部署流程图就更清晰了:kubernetes上部署了Flink Master,由Flink Client来提交session cluster和job的请求:

Flink Kubernetes和Flink Native Kubernetes的区别
至此,可以小结Flink Kubernetes和Flink Native Kubernetes的区别:
-
Flink Kubernetes自1.2版本首次出现,Flink Native Kubernetes自1.10版本首次出现;
-
Flink Kubernetes是把JobManager和TaskManager等进程放入容器,在kubernetes管理和运行,这和我们把java应用做成docker镜像再在kubernetes运行是一个道理,都是用kubectl在kubernetes上操作;
-
Flink Native Kubernetes是在Flink安装包中有个工具,此工具可以向kubernetes的Api Server发送请求,例如创建Flink Master,并且可以和Flink Master通讯,用于提交任务,我们只要用好Flink安装包中的工具即可,

本文介绍了Flink Native Kubernetes在Flink 1.10版本中的应用,对比了它与传统Flink Kubernetes的区别,强调了Flink Native Kubernetes的便捷性和在1.10版本中的实验性质。实战内容包括在Kubernetes环境中创建session cluster并提交任务,同时指出了资源不足导致的问题,并提供了调整资源限制的解决方案。
最低0.47元/天 解锁文章
293

被折叠的 条评论
为什么被折叠?



