Developers may need to implement application-specific algorithms to solve problems such as scheduling, configuration, and placement when working with cluster management systems like Kubernetes. Furthermore, Kubernetes’ best-effort scheduling does not guarantee finding a feasible or optimal placement and does not support global reconfiguration. Declarative Cluster Management (DCM) is a tool that enables programmers to use SQL to declaratively build schedulers and cluster managers. The developer writes SQL queries over cluster state stored in a relational database to specify their constraints and optimization objectives. When a cluster reconfiguration is necessary at runtime, the DCM compiler encodes and solves the combinatorial optimization model based on those policies.