k3OS is a linux distribution designed to remove as much as possible OS maintaince in a Kubernetes cluster. It is specifically designed to only have what is need to run k3s. Additionally the OS is designed to be managed by kubectl once a cluster is bootstrapped. Nodes only need to join a cluster and then all aspects of the OS can be managed from Kubernetes. Both k3OS and k3s upgrades are handled by k3OS.

Quick Start

Download the ISO from the latest release and run in VMware, VirtualBox, or KVM. The server will automatically start a single node kubernetes cluster. Log in with the user rancher and run kubectl. This is a "live install" running from the ISO media and changes will not persist after reboot.

To copy k3os to local disk, after logging in as rancher run sudo os-config. Then remove the ISO from the virtual machine and reboot.

Live install (boot from ISO) requires at least 1GB of RAM. Local install requires 512MB RAM.


All configuration is done through a single cloud-init style config file that is either packaged in the image, downloaded though cloud-init or managed by Kubernetes.

More docs to come


At the moment k3OS will not be shipping official images for the various clouds providers or other platforms. Instead we will release documentation on how to automate the installation to master images.

ARM64 and ARMv7

k3OS will officially ship an ARM64 kernel for server class ARM64 machines. For smaller ARM64 SBCs and ARMv7, k3OS will support a "Bring Your Own Kernel" approach. Basically you should be able to use an existing kernel with k3OS and k3OS wil manage everything except the kernel.

Management from Kubernetes

Still in development but all configuration of the cluster and nodes will be accessible from kubectl as Custom Resources. Upgrades of the OS and k3s will be orchestrated by Kubernetes based on the upgrade policy and desired version.