开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink 1.10 Native Kubernetes原理是什么?

Flink 1.10 Native Kubernetes原理是什么?

展开
收起
Lee_tianbai 2020-12-30 14:40:57 703 0
1 条回答
写回答
取消 提交回答
  • image.png 工作原理如下(段首的序号对应图中箭头所示的数字): 1. Flink 客户端首先连接 Kubernetes API Server,提交 Flink 集群的资源描述 文件,包括 configmap,job manager service,job manager deployment 和 Owner Reference。 2. Kubernetes Master 就会根据这些资源描述文件去创建对应的 Kubernetes 实体。以我们最关心的 job manager deployment 为例,Kubernetes 集 群中的某个节点收到请求后,Kubelet 进程会从中央仓库下载 Flink 镜像, 准备和挂载 volume,然后执行启动命令。在 flink master 的 pod 启动后, Dispacher 和 KubernetesResourceManager 也都启动了。 前面两步完成后,整个 Flink session cluster 就启动好了,可以接受提交任务 请求了。 1. 用户可以通过 Flink 命令行即 flink client 往这个 session cluster 提交任 务。此时 job graph 会在 flink client 端生成,然后和用户 jar 包一起通过 RestClinet 上传。 2. 一旦 job 提交成功,JobSubmitHandler 收到请求就会提交 job 给 Dispatcher。接着就会生成一个 job master。 3. JobMaster 向 KubernetesResourceManager 请求 slots。 4. KubernetesResourceManager 从 Kubernetes 集群分配 TaskManager。 每个 TaskManager 都是具有唯一表示的 Pod。KubernetesResourceManager 会 为 TaskManager 生 成 一 份 新 的 配 置 文 件, 里 面 有 Flink Master 的 service name 作为地址。这样在 Flink Master failover 之后, TaskManager 仍然可以重新连上。 5. Kubernetes 集群分配一个新的 Pod 后,在上面启动 TaskManager。 6. TaskManager 启动后注册到 SlotManager。 7. SlotManager 向 TaskManager 请求 slots。 8. TaskManager 提供 slots 给 JobMaster。然后任务就会被分配到这个 slots 上运行。

    2020-12-30 16:42:30
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载

    相关镜像