如何利用Kubernetes 满足流式计算多场景部署的情况?

参与4

1同行回答

nexposenexpose  其它 , 阳光信保
我们的部分日志分析/统计/告警是通过Flink来实现的,通过Kubernetes 进行Flink 部署,因为我们job主要分为几类,字段格式化job,数据聚合类job,时间窗口统计类Job ,Flink SQL 查询类job。多数任务都持续运行,对启动时间并不敏感,但Flink SQL类较为特殊,因为特定场景,用户会经常在web...显示全部

我们的部分日志分析/统计/告警是通过Flink来实现的,通过Kubernetes 进行Flink 部署,因为我们job主要分为几类,字段格式化job,数据聚合类job,时间窗口统计类Job ,Flink SQL 查询类job。多数任务都持续运行,对启动时间并不敏感,但Flink SQL类较为特殊,因为特定场景,用户会经常在web 页面调整SQL语句参数或字段(每次修改SQL后相关job任务都需要重新发布,生命周期较短),此时考虑到用户体验,我们需要尽快呈现查询或统计结果,所以整体发布速度要求较高,因此我们采用了两种发布模式来应对不同任务的需求Flink session和Job Cluster,在在此类场景我们采用了Flink session, 它有较短发布时间,能够对相关SQL修改后的查询结果快速发布快速呈现,满足部分安全运维人员需求,因SQL的场景伸缩性较大,无法估算出合理的保留资源,所以浪费较大,另一种Job Cluster 主要使用于其它长时间运行的Job,会为每个Job创建独立的Flink 集群,隔离性较好关键任务之间干扰度较低,适合重要的业务场景和数据计算。但是还需要评估任务资源使用情况,资源利用也较低。(另外还需要考虑checkpoint的情况,要涉及容错及现场数据恢复,又涉及对内存数据进行持久化,要考虑采用hdfs 保存,如何合理发挥K8S的威力这又是另一个话题了)。

后期我们计划逐步替换为Native Kubernetes Setup,通过Kubernetes API在任务发布前直接创建Flink 集群,根据任务情况分配合理的资源,更加高效的利用系统资源和发挥Kubernetes资源管理调度功能。

收起
保险 · 2020-06-29
浏览1639

提问者

独立夜
软件开发工程师某金融单位
擅长领域: 云计算服务器灾备

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-06-29
  • 关注会员:2 人
  • 问题浏览:3015
  • 最近回答:2020-06-29
  • X社区推广