Rancher Labs introduced k3OS, the industry’s first extremely lightweight operating system for Kubernetes. It has extremely low resource consumption, minimal operation, and second-level boot, which greatly simplifies in low-resource computing environments.
Kubernetes operation, improve the security of Kubernetes operation and maintenance and fully enable edge computing scenarios.
3OS 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.
k3OS can be used for public clouds and virtualized clusters, but in addition, it is of great value in environments where computing resources represented by edge computing are extremely limited. The main features include:
- supports multiple architectures: k3OS runs on x86 and ARM processors to give you maximum flexibility.
- runs only the minimum required services: Fewer services means a tiny attack surface, for greater security.
- doesn’t require a package manager: The required services are built into the distribution image.
- models infrastructure as code: This makes sure there are no surprises, and that systems come up the same way every time. You can manage system configuration with version control systems, and carry out reliable, repeatable cluster deployments.
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
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.