Installation#
This section describes how to install k0smotron on top of an existing k0s Kubernetes cluster that allows for creation and management of the k0s control plane.
TL;DR
kubectl apply --server-side=true -f https://docs.k0smotron.io/v1.0.4/install.yaml
Known limitations#
Areas in which k0smotron is currently limited include:
- Control plane exposure
Currently k0smotron only supports
ClusterIP
,NodePort
, andLoadBalancer
services, and often it is necessary to further configure created services to ease their interaction with cloud provider implementations.
- Updates prevalence
Although k0smotron can easily update the cluster control plane, in standalone mode such updates do not extend to worker nodes.
Hardware requirements#
k0smotron does not require any special hardware for workloads aside from the one required for k0s. For details on k0s hardware requirements for workloads, see k0s documentation.
Software prerequisites#
k0smotron requires the following software to be preinstalled:
- Kubernetes management cluster. In this documentation set, we use the k0s Kubernetes distribution as a management cluster. For Cluster API integration, you can use a Cluster API cluster.
kubectl
installed locally.-
For Cluster API integration:
- clusterctl installed locally.
- Configured cloud provider. In this documentation set, we describe configuration examples for the following providers: AWS, Docker, Hetzner Cloud, OpenStack, vSphere. For setup instructions, refer to the official documentation of the selected cloud provider.
- Optional. CSI provider for persistent storage in managed clusters.
- Optional. Load balancer provider for ensuring high availability of the control plane.
Full installation#
A full k0smotron installation implies the following components:
- k0smotron operator
- Custom Resource Definitions
- Role-based access control rules
- Bootstrap provider
- Infrastructure provider
- Control plane provider
To install the full version of k0smotron:
kubectl apply --server-side=true -f https://docs.k0smotron.io/v1.0.4/install.yaml
Now, you can create your first control planes using k0smotron either as a standalone manager, or as a Cluster API provider. For use case details, see k0smotron usage.
Per-module installation for Cluster API#
k0smotron is compatible with clusterctl
and can act as a Cluster API
bootstrap, infrastructure, and control plane provider. You can use
clusterctl
to install each k0smotron Cluster API module separately:
clusterctl init --bootstrap k0sproject-k0smotron \
--control-plane k0sproject-k0smotron \
--infrastructure k0sproject-k0smotron
To start using the k0smotron Cluster API, refer to Cluster API.