Kubernetes-in-Kubernetes

k0smotron lets you easily create and manage k0s in any existing CNCF-certified Kubernetes cluster. This permits unparalleled scalability and flexibility when working with many clusters, easing the burden of multi-cluster operations and maintenance.

Controller/Worker Separation

Using k0smotron the clusters control plane and worker plane are truly separated. The control plane, running on an existing cluster, has no direct networking connection to the worker plane. This is a similar pattern to how all major cloud providers separate the control and worker planes on managed clusters.

Bring your own workers

With k0smotron you can connect worker nodes from ANY infrastructure to your cluster control plane. This allows you to manage all control planes in a shared infrastructure, and in a homogenous way, but connect each cluster’s workers from separate remote infrastructures.

Cluster API

k0smotron is NOT limited to managing hosted k0s control planes. It's a full Cluster API provider for k0s.

k0smotron operates as:

  • ControlPlane provider
  • Bootstrap provider
  • Infrastructure provider (with k0smotron RemoteMachine)

k0smotron RemoteMachine

k0smotron RemoteMachine functions as a Cluster API compliant infrastructure provider enabling cluster provisioning on remote machines using SSH connections. This opens up new possibilities for managing remote machines seamlessly in your Kubernetes clusters. Perfect for diverse infrastructure setups, bare metal and for environments which have no existing Cluster API support.

How it works

You install k0smotron operator into an existing Kubernetes cluster. The k0smotron operator will create and manage k0s control planes in that cluster. It leverages the natural pattern of working with custom resources to manage the lifecycle of k0s control planes. k0smotron will automatically create all needed Kubernetes lower level constructs, such as pods, configmaps etc.

k0smotron is a Kubernetes operator designed to manage the lifecycle of k0s control planes in a Kubernetes (any distro) cluster. By running the control plane on a k8s cluster, we can enjoy and leverage the high availability and auto-healing functionalities of the underlying cluster, a.k.a Mothership.

lens-screenshot

Use cases

CI/CD

Often when running integration and end-to-end testing for your software running in Kubernetes you need somewhat temporary clusters in CI. Creating these clusters on demand, with k0smotron, is fast and flexible. Creating a control plane is as easy as creating a custom resource. So is deleting it. No more long-lived snowflake clusters for CI purposes.

Edge

Running Kubernetes on the network edge usually means running on low resource infrastructure. What this often means is that setting up the controlplane is either a challenge or mission impossible. Running the controlplane on an existing cluster, on separate dedicated infrastructure, removes that challenge and lets you focus on the real edge.

Running on the edge often also means a large number of clusters to manage. Do you really want to dedicate nodes for each cluster controlplane and manage all the infrastructure for those?

Multi-cloud

With k0smotron, you can distribute hosted or conventional Kubernetes control planes and workers across one or multiple infrastructures. Aggregate control planes in a ‘mothership’ cluster on public cloud, and put workers (and workloads) on another public cloud, on-premises cloud, or on bare metal machines from datacenter to edge. Explore novel cluster configurations to enhance reliability, security, performance, and control costs.

FAQ

How does k0smotron relate to Cluster API?

k0smotron is a Cluster API provider for k0s. It is a fully compliant Cluster API provider and can be used with any Cluster API compatible tooling. k0smotron is also a Cluster API infrastructure provider, allowing you to provision clusters on remote machines using SSH connections.


How is k0smotron different from typical multi-cluster management solutions such as Tanzu, Rancher etc.?

Most existing multi-cluster management solutions provision specific infrastructure for control planes, in most cases VMs. In all of the cases we've looked at, the worker plane infrastructure is also provisioned in the same infrastructure with the control plane and does not allow you to fully utilize the capabilities of the management cluster.


What do we mean by pet vs. cattle?

As the controlplanes for clusters are pretty static, it means they are usually managed as "pets." Using an operator like k0smotron to manage k0s control planes within an existing Kubernetes cluster is a "cattle" approach that allows for more scalable and flexible cluster management. This approach makes it easier to maintain a consistent and homogeneous setup across all clusters, while also taking advantage of the high availability and auto-healing features of Kubernetes.

How is this different for managed Kubernetes providers?

  • Control and Flexibility: k0smotron gives you full control over your cluster configurations within your existing Kubernetes cluster, offering unparalleled flexibility.
  • Bring Your Own Workers: Unlike managed Kubernetes providers, k0smotron allows you to connect worker nodes from any infrastructure, providing greater freedom and compatibility.
  • Cost Efficiency: By leveraging your existing Kubernetes cluster as a host for k0smotron-managed control planes, k0smotron helps reduce costs associated with managing separate clusters or paying for additional resources.
  • Homogeneous Setup: k0smotron ensures consistent configuration across clusters, simplifying maintenance and management tasks.

Originated by