Operating System
After running 2 years on Fedora Server, the Shivering-Isles infrastructure has migrated to Talos Linux as host OS.
The benefits of using Talos Linux over Fedora as host OS underneath Kubernetes, are divers, starting from the immutable nature of the OS along with the stronger SecureBoot features, due to using UKI with an easy to use setup-keys mechanism. It also drops the need to build the container runtime and kubernetes packages ourselves. Finally Talos has a very minimal OS approach comparable to Google's ContainerOS.
This of course means that some features are lost, like Cockpit support and SELinux.
Talos Linux
Talos is a container optimized Linux distro; a reimagining of Linux for distributed systems such as Kubernetes. Designed to be as minimal as possible while still maintaining practicality. For these reasons, Talos has a number of features unique to it.
Talos is managed using the Talos API, which is very similar and partitially integrated with the Kubernetes API. It's used for the initial setup and future node management.
In the Shivering-Isles infrastructure, Talos is managed with a tool called talhelper which provides the needed ability to have the operating system definition declarative.
Node and Kubernetes upgrades are done using the system-upgrades-controller.
Finally to make up for the lack of SELinux, Talos provides hardened defaults and additionally gVisor as container runtime.
Some important factors for using Talos over other OSes were:
- modern software versions
- TPM-based LUKS encryption
- gvisor support
- automated updates
- No SSH / non-kubernetes access to the node
- Purpose built for Kubernetes