Release Target: The project is starting a public preview in mid-late April 2025. Partners interested in collaborting can email mco-interest@google.com for more information.
An initial open source beta release will follow later in 2025.
The Multi-Cluster Orchestrator project provides dynamic scheduling and scaling of Kubernetes workloads across multiple clusters according to user-defined rules and metrics.
The primary goals of the project are simplifying multi-cluster deployments, optimizing resource utilization and costs, and enhancing workload reliability, scalability, and performance.
One example use case is automatically reacting to capacity exhaustion. For example, AI/ML workloads require GPUs but demand for GPUs is currently very high across the industry which can result in public cloud regions temporarily running out of available GPUs at times. Multi-Cluster Orchestrator can help mitigate this scenario by automatically scaling the workload out to another cluster in region which still has available resources then scaling it back in later.
The Multi-Cluster Orchestrator controller runs in a hub cluster and provides an API allowing the user to define how their workload should be scheduled and scaled across clusters.
Based on these parameters the system continuously monitors metrics specified by the user and dynamically makes decisions about which clusters should be used to run the workload at a given time.
The system builds on the Cluster Inventory
API
developed by the Kubernetes SIG
Multicluster, with the ClusterProfile
API
defining the available clusters to schedule workloads on. The ClusterProfiles
may be provisioned manually by the user, or automatically using a plugin to sync
them from an external source-of-truth such as a cloud provider API.
While Multi-Cluster Orchestrator determines which clusters should run the workload at a given time, the actual delivery of workloads to clusters is decoupled from the core Multi-Cluster Orchestrator controller. This makes it possible for users to integrate their preferred existing systems for application delivery. For example, Multi-Cluster Orchestrator can be integrated with Argo CD via an ApplicationSet generator plugin.
The system can be used in tandem with multi-cluster load balancers such as Google Cloud's Multi-Cluster Gateway to dynamically route incoming traffic to the various clusters.