  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.
