Talos:Immutable, Minimal,
Mighty.
What we're covering tonight
Have you ever thought about the principles behind Kubernetes design?
What if we used those same principles to design a brand-new OS — one built to run nothing but Kubernetes workloads?
Reza Chalak
DevOps Engineer @ ProLion
We build cybersecurity products. My job: keep the Kubernetes underneath them boring, reconciled, and hard to break.
What's wrong with general-purpose Linux machines?
The Problem
All We Actually Need
- Kernel — nothing riding on top of it by default
- A few binaries — exactly what Kubernetes needs to run
- An API to talk to — never a shell
- Containerd (CRI) — the one runtime, no shim zoo
What criteria matter when you design an OS for Kubernetes?
API-Driven
Every interaction goes through an API. Never a shell, never SSH.
Single Source Of Truth
One declarative document fully describes the node.
Declarative States
Say what the node should be — never the steps to get there.
Reconciliation Loop
Validate, then converge continuously toward the desired state.
Minimal
Only what Kubernetes needs. Nothing else ships.
Maintainable
Fewer moving parts — fewer things that can drift or break.
Secure By Default
mTLS, PKI identity, zero default passwords — not bolted on later.
Replaceable Node
Don't repair a node. Replace it, like a pod.
Talos components — and how it actually works
From zero to a running node
Talos Factory
Build a custom install image: pick extensions, kernel args, architecture.
Deployment Types
Bare metal, VMware, Proxmox, every major cloud — same image model.
Extensions
Drop in exactly what the hardware needs. Nothing ships unasked.
Kernel Arguments
Declared in the image, never edited on a running box.
Machine Config
One YAML fully describes a control plane or worker node.
Upgrades
A/B partitions, one API call, roll back just as fast.
Bare metal → GitOps, live on stage
Blank Hardware → Talos Boots
Boot the install image, apply a Machine Config: install disk, a VIP on the node's interface.
talosctl bootstrap
One command, one production-grade single-node cluster — allowSchedulingOnControlPlanes included.
A Local Registry, Close To The Metal
A second disk mounted as a UserVolumeConfig runs zot as a static pod — a pull-through mirror for Docker Hub, GHCR, registry.k8s.io and Quay.
FluxCD Bootstraps Itself
An inline-manifest Job installs Flux, which points an OCIRepository straight at that same zot registry — GitOps-driven from first boot.
Thank You.