Flink on K8s 概述

本文概述了Flink在Kubernetes(K8s)上的部署方式,包括Native模式优于Standalone模式的原因,Application和Session模式的适用场景,以及operator模式的优缺点。文章详细解释了Standalone Session和Perjob模式的启动流程,并介绍了Flink的Native Integration技术,强调其资源管理和自动恢复的特性。此外,还讨论了Flink在K8s上的部署演进,包括云原生部署方案的挑战和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结下来就几点:

1、Native模式比Standalone模式好

Standalone模式需要提前确认好每个任务需要使用的资源,并在配置文件里面配置,每一个任务都是固定资源大小,申请多了浪费,少了怕出问题。

Native模式不需要预先确定需要使用的资源数量,系统会实时根据任务需要自动去k8s集群申请能申请到的资源。

2、Application和Session模式各有优劣,不同情况使用不同模式

Application模式资源隔离性强,每个人物都是单独的集群,不会出现并发问题。每个任务都需要启动一个集群,会先启动JobManager,然后启动TaskManager,效率会比较低。适合流处理任务

对比yarn环境下的perjob提交任务速度快很多,大约是十几秒就能提交执行;yarn环境下提交任务需要一分多钟。

Session模式需要提前创建好集群,所有任务共享集群资源,并发下可能会有问题。共用集群,只需要启动TaskManager,效率高。适合批处理任务

operator模式的利弊

还有一种方式叫operator模式,这种方式的优点是有一个开源服务,这个服务来帮你管理yml配置文件,你不需要自己去管理各种资源的配置。但是需要单独启动这个服务,然后调用这个服务的api去管理yml文件的配置功能。

优点: 

管理 Flink 集群更加便捷

flink-operator 更便于我们管理 Flink 集群,我们不需要针对不同的 Flink 集群维护 Kubenretes 底层各种资源的部署脚本,唯一需要的,就是 FlinkCluster 的一个自定义资源的描述文件。用户只需要在该文件中声明期望的 Flink 集群配置,flink-operator 会自动完成 Flink 集群的创建和维护工作。如果创建 Per Job 集群,也只需要在该 yaml 中声明 Job 的属性,如 Job 名称,Jar 包路径即可。通过 flink-operator,上文提到的四种 Flink 运行模式,分别对应一个 yaml 文件即可,非常方便。

声明式

        通过执行脚本命令式的创建 Flink 集群各个底层资源,需要用户保证资源是否依次创建成功,往往伴随着辅助的检查脚本。借助 flink operator 的控制器模式,用户只需声明所期望的 Flink 集群的状态,剩下的工作全部由 Flink operator 来保证。在 Flink 集群运行的过程中,如果出现资源异常,如 JobMaster 意外停止甚至被删除,Flink operator 都会重建这些资源,自动的修复 Flink 集群。

自定义保存点

用户可以指定 autoSavePointSeconds 和保存路径,Flink operator 会自动为用户定期保存快照。

自动恢复

流式任务往往是长期运行的,甚至 2-3 年不停止都是常见的。在任务执行的过程中,可能会有各种各样的原因导致任务失败。用户可以指定任务重启策略,当指定为 FromSavePointOnFailure,Flink operator 自动从最近的保存点重新执行任务。

Ingress 集成

用户可以定义 Ingress 资源,flink operator 将会自动创建 Ingress 资源。云厂商托管的 Kubernetes 集群一般都有 Ingress 控制器,否则需要用户自行实现 Ingress controller。

Prometheus 集成

通过在 Flink 集群的 yaml 文件里指定 metric exporter 和 metric port,可以与 Kubernetes 集群中的 Prometheus 进行集成。

缺点:

需要单独启动一个服务

它的很多优点基于api的方式也能实现

3、启动方式

Standalone模式:定义好配置文件,然后通过kubectl命令去创建集群,目前没找到api方式创建

Nat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值