Skip to content

Machines

Machines are bare-metal or virtualized computers designated as worker nodes for the Kubernetes Control Planes provided by Nest appliance.

Everything that can boot from a Linux ISO can be turned into a Machine: a physical server, a virtual machine or even a Raspberry PI.

TIP

You can enroll virtual machines the same way as bare metal servers. Be aware that for some use cases (i.e. KubeVirt, Elastic Pools), we require virtualization, so we recommend building on hardware directly.

Components

A Machine runs the following software:

Machine Components

  • At its heart, Machines run a hardened configuration of the Flatcar Container Linux Operating System, a minimal OS designed to run container workloads.
  • It is immutable and stateless (except a cache partition to hold the container images)
  • It is made up of the following components:
    • the Linux Kernel, glibc and other foundational services
    • systemd to run services
    • meltcloud-agent which interacts with the meltcloud platform to send diagnostics and receive instructions
    • containerd to run containers
    • kubelet to run Kubernetes workloads
    • network configuration (via Network Profiles) for advanced networking like bonds, VLANs and bridges.

Managed Lifecycle

A Machine is joined to the meltcloud platform by booting from Enrollment images. Once enrolled, a Machine is fully automated and controlled by the Nest Appliance during its whole lifecycle:

  • Roughly every month, meltcloud releases new Machine Images that contain up-to-date versions of the Linux Kernel, systemd, containerd & kubelet. These updates can be applied autonomously in configurable maintenance windows.
  • All user changes (changing the hostname, assigning to a different cluster, adding a label, unassigning or decomissioning a Machine) are also gracefully rolled out by the Nest appliance (no manual interactions).

Due to its immutable nature, each change to a Machine is applied by rebooting the Machine. Group the Machines into Machine Pools to ensure high availability during upgrades.