I'm a senior software engineer at Upbound, with a passion for building cloud applications.
Using Kubernetes to Scale Multi-Class Clusters
As K8s adoption continues to grow, use cases which require more than one cluster instance emerge. Scalability limitations, different cluster configurations (specific capabilities for various purposes), and multi-cloud presence are among these use cases. In general, multiple cluster classes can be envisioned for creating instances, where each class represents a specific cluster configuration on a specific cloud provider.
We discuss how we use an open source project to extend the K8s control plane, so we can provision and scale such multi-class clusters. We first express each class as a set of K8s resource manifests, and then use a claim-based provisioning model for creating an instance of an arbitrary class. Then we show how a custom K8s controller can leverage this claim-based model to scale clusters across each cluster class, adopting a similar approach used in K8s pod auto-scaling.