A5-基于 Kubernetes 的复杂工作负载混合调度器思考与实践.pdf
【基于 Kubernetes 的复杂工作负载混合调度器】 在云原生时代,Kubernetes(简称 k8s)已经成为管理和调度容器化应用程序的事实标准。然而,随着业务的复杂性和多样性增加,传统 k8s 调度器可能无法满足所有类型工作负载的需求,特别是针对大数据和人工智能(AI)等复杂工作负载。本篇内容主要探讨了如何构建一个基于 Kubernetes 的复杂工作负载混合调度器,以应对这一挑战。 云原生技术的核心在于微服务,它们能够以独立、可伸缩的方式部署和更新,通过 REST API 进行通信。云原生的其他关键元素包括容器、服务网格、不可变基础设施和声明式 API。这些技术使应用程序能够在各种云环境中高效运行。 然而,当组织将不同类型的工作负载(例如微服务、大数据、实时计算、批处理作业和 AI 计算任务)统一到一个云原生基础架构时,调度问题变得尤为重要。传统的 Kubernetes 调度器并不具备多租户模型下的调度能力,也不支持大数据和 AI 类型的任务,其 Pod 排序算法单一,不支持细粒度的资源管控和应用感知调度。 针对这些问题,社区提出了不同的解决方案。Volcano 是一个批处理作业调度器,支持统一的工作负载定义、异构 Pod 模板和弹性队列,但其多调度器部署可能导致资源冲突。YuniKorn 是一个跨平台通用调度器,支持层次化资源队列和多种调度算法,但它不支持 k8s 的层次化资源队列,且不完全适配多租户模型。 社区的另一个进展是 Scheduling Framework v2,它提供了一种原生扩展调度器的能力,允许实现如组调度、弹性配额等功能,具有极高的可扩展性。 星环科技(Transwarp)基于此进行了深入思考,推出了 Transwarp Scheduler,这是一个全局统一调度器,旨在解决上述问题。Transwarp Scheduler 支持多租户场景的资源调度、多种工作负载的合理调度、资源共享和弹性调度,并提供了细粒度的资源管控。此外,它还支持多种调度算法,并且完全兼容社区原生的 Kubernetes 调度器。 Transwarp Scheduler 的设计基于 Scheduling Framework v2,通过构建自定义调度器,而不对 k8s 进行任何侵入式修改,确保了与原生 k8s 的兼容性。它通过实现大数据和 AI 任务调度的相关插件以及 Queue 相关插件,如 QueueSort 和 QueueCapacityControl,优化了工作负载的调度策略,使得资源分配更加公平和高效。 总结来说,基于 Kubernetes 的复杂工作负载混合调度器的发展,是为了更好地适应云原生环境中的多元化需求,提高资源利用率,保障各类任务的高效执行。通过社区的努力和创新,如 Transwarp Scheduler 这样的解决方案,正在逐步解决云原生环境中的调度难题,推动着企业向更智能、更灵活的基础设施迈进。
剩余16页未读,继续阅读
- 粉丝: 48
- 资源: 29
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0