Flink Native Kubernetes实战

欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;

回顾Flink Kubernetes

Flink Kubernetes与Flink Native Kubernetes是不同的概览,先回顾一下Flink Kubernetes:

如下图,从1.2版本到目前最新的1.10,Flink官方都给出了Kubernetes上部署和运行Flink的方案:

在这里插入图片描述

在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安装包中的工具即可,无需在kubernetes上执行kubectl操作;

Flink Native Kubernetes在Flink-1.10版本中的不足之处

Flink Native Kubernetes只是Beta版,属于实验性质(官方原话:still experimental),请勿用于生产环境!

只支持session cluster模式(一个常驻session执行多个任务),还不支持Job clusters模式(一个任务对应一个session)

尽管还没有进入Release阶段,但这种操作模式对不熟悉kubernetes的开发者来说还是很友好的,接下来通过实战来体验吧;

官方要求

为了体验Native Kubernetes,flink官方提出了下列前提条件:

kubernetes版本不低于1.9

kubernetes环境的DNS是正常的

KubeConfig文件,并且这个文件是有权对pod和service资源做增删改查的(kubectl命令有权对pod和service做操作,也是因为它使用了对应的KubeConfig文件),这个文件一般在kubernetes环境上,全路径:~/.kube/config

pod执行时候的身份是service account,这个service account已经通过RBAC赋予了pod的增加和删除权限;

前面两点需要您自己保证已达到要求,第三和第四点现在先不必关心,后面有详细的步骤来完成;

实战环境信息

本次实战的环境如下图所示,一套kubernetes环境(版本是1.15.3),另外还有一台CentOS7电脑,上面已部署了flink-1.10(这里的部署是说把安装包解压,不启动任何服务):

在这里插入图片描述


准备完毕,开始实战了~

实战内容简介

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspfpz.html