Hi All,
As we all know that CoreOS reached EOL on May 26th, 2020 and with this arose
the need to find a suitable replacement that meets the need of resilience,
popularity, and security. Keeping these aspects in mind, we looked at some
viable options like Alpine Linux, FlatCar Linux, and Debian. Doing some basic
PoCs on each of them and understanding how they fair in the community, we based
our decision on the following metrics/parameters:
FlatCar Linux Alpine Linux Debian
Brief Description Drop-in replacement for CoreOS Alpine Linux is a Linux
distribution based on musl and BusyBox, designed for security, simplicity, and
resource efficiency Debian is one of the oldest operating systems based on
the Linux kernel. New distributions are updated regularly, and the next
candidate is released after a time-based freeze.
Size ~ 500MB – 600MB Small image of approx. 5MB – Because of its small size,
it is commonly used in containers providing quick boot-up times ~ 500MB – 600MB
Security Quite secure as it mitigates security vulnerabilities by means
of delivering the OS as an immutable filesystem All userland binaries are
compiled as Position Independent Executables (PIE) with stack smashing
protection. These proactive security features prevent exploitation of entire
classes of zero-day and other vulnerabilities. Debian is on a par with most
other Linux distributions.
Release Management Frequent releases – almost bi-weekly or monthly There
are several releases of Alpine Linux available at the same time. There is no
fixed release cycle but typically every 6 months Debian announces its new
stable release on a regular basis. 3 years of full support for each release and
2 years of extra LTS support.
Maintenance It is maintained by Kinvolk – a Berlin based consulting firm
known for their work around rkt, Kubernetes, etc. Alpine Linux is backed by a
pretty large community base with mailer lists, etc. to find support
Unparalleled support –claim to provide you with answers for queries on mailing
lists within minutes!
Main Reason for Choosing / Not Choosing NOT CHOSEN: A small community, not a
popular choice and chances of meeting the same fate as CoreOS i.e., EOL NOT
CHOSEN: Init system used by Alpine Linux is openrc – and up until recently k8s
did not support openrc systems
https://github.com/kubernetes/kubeadm/issues/1295 CHOSEN: Huge community
support, and most importantly – we can modify the existing systemVM templates!
With the above, we propose using the Debian-based systemVM template for apart
from the fact that it has a huge community support, we already have it
registered in our CloudStack environments, thus making it readily available for
consumption by CKS for deploying Kubernetes clusters, with no requirement of
registering a new template. To enable systemVM to be consumed by CKS a few
packages like docker, containerd, are installed on the systemVM template,
however, these services are disabled by default in the systemVM template and
are only enabled and started for CKS nodes. We've proposed a PR here:
https://github.com/apache/cloudstack/pull/4329.
Thanks & Regards,
Pearl Dsilva
[email protected]
www.shapeblue.com
3 London Bridge Street, 3rd floor, News Building, London SE1 9SGUK
@shapeblue