Cloud computing has brought a fundamental transformation in how organizations operate their applications, enabling them to achieve affordable high availability of services. Kubernetes has emerged as the preferred choice for container orchestration and service management across many Cloud computing platforms. The scheduler in Kubernetes plays a crucial role in determining the placement of newly deployed service containers. However, the default scheduler, while fast, often lacks optimization, leading to inefficient service placement or even deployment failures. This paper introduces SAGE, a tool for optimal solutions in Kubernetes clusters that can also assist the Kubernetes default scheduler and any other custom scheduler in application deployment. SAGE computes an optimal deployment plan based on the constraints of the application to be deployed and the available Cloud resources. We show the potential benefits of using SAGE by considering test cases with various characteristics. It turns out that SAGE surpasses other schedulers by comprehensively analyzing the application demand and cluster image. This ability allows it to better understand the needs of the pods, resulting in consistently optimal solutions across all scenarios. The accompanying material of this paper is publicly available at https://github.com/SAGE-Project/SAGE-Predeployer.
翻译:云计算从根本上改变了组织运维其应用的方式,使其能够以可承受的成本实现服务的高可用性。Kubernetes已成为众多云计算平台上容器编排和服务管理的首选方案。Kubernetes中的调度器在决定新部署服务容器的放置位置方面起着关键作用。然而,默认调度器虽然速度快,但往往缺乏优化,导致服务部署效率低下甚至部署失败。本文介绍了SAGE,一个用于Kubernetes集群中寻求最优解决方案的工具,它还能协助Kubernetes默认调度器及任何其他自定义调度器进行应用部署。SAGE基于待部署应用的约束条件和可用云资源,计算出一个最优部署计划。我们通过考虑具有不同特征的测试用例,展示了使用SAGE的潜在优势。结果表明,SAGE通过全面分析应用需求和集群镜像,优于其他调度器。这种能力使其能更好地理解Pod的需求,从而在所有场景下持续获得最优解决方案。本文的配套材料公开于https://github.com/SAGE-Project/SAGE-Predeployer。