• 【flink】flink1.12 application mode on k8s


    补充上一篇没有讲到的内容。

    k8s节点之间的通信

    k8s有一个名为kube-apiserver的进程,该进程运行在Master上。这个进程提供了一个rest服务,所有的操作例如pod、service的增删改查watch的操作都是基于此接口执行的。agent机器上的kubectl其实也是基于该rest接口操作的。所以其实无论spark还是flink,它的命令提交都是通过http的方式去提交指令的。这意味着启动flink和spark的client不需要k8s的master或者agent上运行。在目前使用的库上,flink和spark都是先去~/.kube里面去找认证文件,然后通过http的方式携带认证提交命令的。

    flink on k8s简单原理

    flink client会创建一个deployment,该deployment会创建jobmanager和一个rest用于访问的页面。然后会挂载一个configMap,该configMap中包含了提交任务的命令和提交任务的client的conf里面相关内容。

    deployment创建jobmanager的pod,然后根据configMap在jobmanager的pod启动taskmanager的pod。整个机制大概是这样的

    日志回收问题

    按照官方说法,为了节省资源,tm在运行完成之后,所在pod会被直接销毁。

    所以简单的方式是将flink的log方式改为logback,默认是log4j。然后追加es或者kafka的appender

    这里操作比较复杂,需要删除原本镜像的log4j包。

     由于项目过去一段时间,具体操作未及时更新,后面再补。

    以上

  • 相关阅读:
    php 5.3新特性
    php:// — 访问各个输入/输出流(I/O streams)
    php 二维数组排序
    js 面向对象式编程
    jQuery 源码学习笔记
    c++ 指针(二)
    c++ 指针(一)
    visual studio 2012 的制作ActiveX、打包和发布
    用linqPad帮助你快速学习LINQ
    Caliburn.Micro学习笔记(五)----协同IResult
  • 原文地址:https://www.cnblogs.com/zhouwenyang/p/15123588.html
Copyright © 2020-2023  润新知