Build Kubernetes clusters using Sidero Metal & Talos Linux on Raspberry Pi

Michael Fornaro
ITNEXT
Published in
3 min readFeb 18, 2022

--

Part I: Kubernetes Bare Metal Lifecycle Management

Co-Author: Anthony Rabbito

Introduction

This blog series will cover a highly opinionated way to manage bare metal infrastructure, to provision Kubernetes clusters, and life cycle manage these clusters through a collection of open-source software in an automatable and repeatable approach. Also some of the key benefits to using these concepts and overall approaches.

Key Benefits

Managing bare metal with Cluster API and Sidero Metal has many advantages and this is not a definitive list however here are some that I’d like to highlight:

Declarative — The Cluster API with the extension of Sidero Metal provides a way to declaratively define the state of your infrastructure.

Immutable — Provisioning infrastructure that is immutable provides the ability to have repeatability, and also de-risks change management issues that arise due to in-place upgrade and configuration drift.

Secure — Talos Linux provides a secure by default stance. It’s a purpose built OS designed for provisioning Kubernetes. It has a significantly reduced footprint in the OS and all access is via API with strict mTLS.

Part I: Kubernetes Bare Metal Lifecycle Management

Kubernetes as infrastructure

Before discussing both Sidero Metal and Talos Linux, it is important to highlight that this series considers Kubernetes clusters as pieces of “infrastructure”. In cloud-native computing more and more effort is being made to improve the seamlessness of immutable infrastructure; Although what about self-hosted bare metal infrastructure?

Cluster API

source: https://github.com/kubernetes-sigs/cluster-api

What is the Cluster API?

Cluster API is a Kubernetes sub-project focused on providing declarative APIs and tooling to simplify provisioning, upgrading, and operating multiple Kubernetes clusters.

The Cluster API project supports building custom “providers” which extends the functionality across different types of infrastructure and this is where Sidero Metal comes into the picture; Sidero Metal extends the Cluster API to allow Kubernetes Bare Metal Lifecycle Management. This is a game changer!

Sidero Metal

source: https://github.com/talos-systems/sidero

Sidero Metal extending the Cluster API provides the ability to declaratively define your infrastructure; It responsible for managing the bare metal infrastructure to reconcile it to the desired state. Additionally it aligns with providing an immutable infrastructure experience to bare metal which brings reduced complexity and failure, improved security, and an easier troubleshooting experience.

Talos Linux

source: https://github.com/talos-systems/talos

Talos Linux is a modern OS for running Kubernetes: secure, immutable, and minimal. Talos Linux is fully open source, production ready, and supported by the people at Sidero Labs All system management is done via an API — there is no shell or interactive console.

Why Talos Linux?

  • Security: Talos Linux reduces your attack surface: It’s minimal, hardened and immutable. All API access is secured with mutual TLS (mTLS) authentication.
  • Predictability: Talos Linux eliminates configuration drift, reduces unknown factors by employing immutable infrastructure ideology, and delivers atomic updates.
  • Evolvability: Talos Linux simplifies your architecture, increases your agility, and always delivers current stable Kubernetes and Linux versions.

Note: Talos Linux is part of the CNCF!

These projects bring a lot of advantages to running a Kubernetes cluster on Raspberry Pi, as we’ll see in the next part!

--

--