在上一篇文章《Flink On K8s实践3:Application部署模式实践》中讲解和演示了Application部署模式在Kubernetes上的2种Flink作业提交方式,本文继续讲解Flink的另外一种部署模式——Session部署模式,它和Application模式一样在Kubernetes上也有2种Flink作业提交方式,接下来通过示例进行实践演示。 一、Session模式简介 在 flink k8...
Native K8s 相当于计算框架自己实现一个类似 AppMaster 的角色向 k8s 去申请资源,当然和 AppMaster 还是有差异的 (AppMaster 需要按 YARN 的标准进行实现)。 2. Spark on k8s 使用 提交作业 向k8s 集群提交作业和往 YARN 上面提交很类似,命令如下,主要区别包括: --master 参数指定 k8s 集群的 ApiServer 需要通...
比如利用公司的持续集成 CICD 来构建 docker 镜像;日志采集工具用来收集每个 K8s Node 上的日志;搜索引擎 ES 用来搜索近期的 Flink 日志;HDFS 用来存储历史所有的 Flink 日志。 以一个 Flink Jar 包任务为例,来看一下整体 Flink 计算平台的处理流程。首先是任务提交时选择的资源版本,因为用的是 Flink on native...
那么我们为什么选择 Flink on native k8s 的 Application Mode 呢? 从业务现状和技术现状来讲,我们公司有一个专业的 k8s 运维团队和 Flink 从 0-1 开始建设,没有迁移的成本。从 k8s 本身来讲,k8s 有弹性、故障迁移、资源隔离和易于管理运维等优点。 选择Native 方式的原因是基于原生的 k8s,HA 不再依赖于外部...
在今年 4 月份我们在提交了第一个 Flink on native k8s 任务后,后续各个业务方向都想复用 Flink 实时计算的能力。比如以下三个场景: 第一个是基础的实时数据传输场景,业务方希望将业务库的数据便捷的分发到多种存储引擎中应对不同的需求。第二个是数据分析和大屏的场景,分发用户在 APP 上的各种埋点数据来供后...
分布式计算引擎 Flink/Spark on k8s 的实现对比以及实践 以Flink 和Spark为代表的分布式流批计算框架的下层资源管理平台逐渐从Hadoop生态的 YARN 转向Kubernetes生态的 k8s 原生 scheduler 以及周边资源调度器,比如 Volcano 和 Yunikorn 等。这篇文章简单比较一下两种计算框架在 Native Kubernetes 的支持和实现上的异同,以...
以一个 Flink Jar 包任务为例,来看一下整体 Flink 计算平台的处理流程。首先是任务提交时选择的资源版本,因为用的是 Flink on native k8s 资源统一打包成 docker 镜像。我们提供了两种打包方式,主动上传和自动触发。 主动上传是指,用户在上传完成后可以选择自己上传的版本,来生成对应版本的镜像,我们的镜像管理服务...
Flink on k8s native 的实现支持两种模式: application mode:在远程 k8s 集群中启动一个 flink 集群(jm 和 tm),driver 运行在 jm 中,也就是只支持 detached 模式,不支持 attached 模式。 session mode:在远程 k8s 集群启动一个常驻的 flink 集群(只有 jm),然后向上面提交作业,根据实际情况决定启动多少个 tm。
flink on native k8s by application mode flink1.13于5月4日发布,版本迭代之快,更是体现了其势不可挡的发展速度。社区活跃度逐步攀升,当然少不了与云原生等技术的集成。 本文主要讲解flink的原生k8s application模式部署步骤,原生k8本质上是flink内部集成了k8s,能够做到Taskmanager的弹性伸缩。
实际生产中使用flink on k8s推荐使用flink kubernetes operator的方式,flink native k8s还不是很成熟,坑略多。 2.环境初始化 实际工作中,为了规范flink 作业在k8s上的运行部署,通常会讲flink 作业调度到指定的namespace中运行,并使用特定的ServiceAccount运行。