如果作业不断 failover,然后不停地持久化新的 tag 到 Prometheus,如果 Prometheus 后面接的 DB 需要对 tag 构建一个索引的话,那么索引的压力会非常大。例如 InfluxDB 的压力就会非常大,可能会导致整个内存 CPU 不可用,这样的结果非常可怕。所以,我们还需要借助于社区在 report 这边把一些高维度的 tag 过滤掉,有兴趣的同学可以关注下 FLINK-15110。
Flink on YARN 是目前比较成熟的一套系统,但是它有点重,不是云原生(cloud native)。在服务上云的大趋势下,Flink on K8S 是一个光明的未来。Flink on YARN 是一个过去非常成熟一套体系,但是它在新的需求、新的挑战之下,可能缺乏一些应对措施。例如对很多细致的 GPU 调度,pipeline 的创建等等,概念上没有K8S 做得好。
如果你只是简单运行一个作业,在 Flink on YARN 上可以一直稳定运行下去,它也比较成熟,相比之下 Flink on K8S 够新、够潮、方便迭代。不过目前 Flink on K8S 已知的一些问题,比如学习曲线比较陡峭,需要一个很好的 K8S 运维团队去支撑。另外,K8S 本身虚拟化带来的性能影响,正如先前介绍的无论是磁盘,还是网络,很难避免一定的性能损耗,这个可能是稍微有点劣势的地方,当然相比这些劣势,虚拟化(容器化)带来的优点更明显。