Supported operating systems
MetaKube provisions Kubernetes Nodes on top of VMs with a plain base image. We support and provide images for the following operating systems and versions:
- Ubuntu Noble 24.04
- Ubuntu Jammy 22.04
- Flatcar stable
Note
Using your own images is possible, but not supported.
For more information on supported images and how to upload your own see the SysEleven OpenStack Cloud documentation.
Configuration
Timezone
The timezone on all provided images is UTC. If you want to set a different timezone you have to use your own image, though using UTC is generally recommended to not run into problems with daylight saving times.
Updates
OpenStack provides new images with patches as they become available. MetaKube frequently tests the latest images with all supported Kubernetes versions.
MetaKube does not update Kubelet after a Node has been provisioned. To get a different Kubelet version, configure the Kubernetes version in the MachineDeployment.
Ubuntu
On Ubuntu, packages are upgraded periodically by unattended-upgrades.
Some updates (e.g. Kernel) require a reboot to be applied.
You may use a tool such as Kured to automatically reboot Nodes in a controlled way when necessary.
Unexpected Kubelet restarts
We have observed on Ubuntu 24.04 that unattended-upgrades restarts Containerd (and Kubelet) after successful package updates.
While this doesn't impact the Node or Pods running on it, we do consider this unintended behavior.
Use Ubuntu with systemd-sysext to avoid this problem.
Ubuntu with systemd-sysext
Starting with Ubuntu 24.04, systemd-sysext is a service that activates/deactivates system extension images.
This allows to extend the operating system without persistent modifications to the filesystem.
MetaKube offers to create Ubuntu nodes with the systemd-sysext service activated. In this case, the kubelet and the
containerd services are not installed via the standard package manager. Instead, they are pre-built images which
are downloaded at boot time and then activated by the sysext service.
The advantages are a faster boot time, because the packages are not built locally. Additionally, it avoids the problem of "Unexpected Kubelet restarts".
Enable systemd-sysext
To enable systemd-sysext through the MetaKube UI:
- Configure a node deployment
- In the image configuration section, choose Ubuntu (at least version 24.04)
- Enable the "Use systemd-sysext" option
To enable systemd-sysext using the MetaKube Terraform provider (added in v6.0.0-alpha):
Flatcar
Flatcar's root filesystem is (mostly) mounted read-only. Package updates are installed on a separate partition that is "promoted" at the next reboot.
An operator automatically reboots Nodes that require it.
