京东Flink on K8s优化实践:资源高效利用与稳定性提升

版权申诉
0 下载量 55 浏览量 更新于2024-07-05 收藏 5.03MB PDF 举报
"Flink on K8s 在京东的持续优化实践" 本文主要介绍了Flink在Kubernetes(K8s)上进行部署和优化的实际操作经验,由资深技术专家付海涛分享。京东作为一家大型电商平台,对大数据处理的需求极高,而Flink作为实时计算框架,与K8s的结合为京东提供了更高效、安全且易于管理的解决方案。 ## 1. 基本介绍 选择Kubernetes的原因主要有以下几点: - **易部署运维**:K8s简化了Flink的部署和运维工作,使得集群管理更加便捷。 - **资源利用**:通过K8s的资源调度,能更好地优化Flink任务的资源利用率。 - **隔离安全**:K8s提供强大的资源隔离和安全性,确保不同任务间的互不影响。 京东的容器化进程经历了逐步演进: - **2018年6月**:约20%的任务开始在K8s上运行。 - **2019年2月**:所有计算单元全面容器化,实现全部任务在K8s上的运行。 - **2021年及以后**:不断进行持续优化,提高资源效率和DevOps效率。 ## 2. 生产实践 京东采用的是**静态模式**的容器化方案,即Flink Standalone on K8s。主要组件包括: - **K8s客户端**:用于与K8s集群交互。 - **JRC平台**(京东实时计算平台):作为Flink作业的管理和调度中心。 - **K8s Master**:包括apiserver、controller manager和scheduler,负责整个集群的管理和调度。 - **K8s Deployment**:用于管理JobManager和TaskManager的Pod生命周期。 - **K8s Pod**:实际运行Flink JobManager和TaskManager的工作单元。 此外,Flink作业的输入输出可能涉及如**JDQ**、**Kafka**、**HDFS/OSS**、**MySQL**、**JimDB**等数据源和接收器。 ## 3. 优化改进 优化主要集中在以下几个方面: - **资源使用**:通过混合部署服务,实现了资源的有效共享,减少了30%的机器资源消耗。 - **DevOps效率**:提供了一致的开发、测试和生产环境,提升了自动化部署和运维能力,降低了50%的管理和运维成本。 - **业务稳定**:通过资源隔离和细粒度权限控制,增强了系统的弹性自愈能力,保障了业务的稳定性。 ## 4. 未来规划 对于未来,京东可能会继续探索: - 如何进一步提升K8s上的Flink性能。 - 扩大K8s的使用范围,可能包括更多类型的计算任务和服务。 - 探索更多资源优化策略,例如动态扩缩容,以应对业务波动。 京东的Flink on K8s实践展示了如何在大型企业中有效地整合实时计算和容器化技术,为大数据处理带来更高的效率和可靠性。这种模式对于其他寻求现代化大数据架构的企业也具有参考价值。