Skip to content

Immutable-OS cluster

The Kubernetes cluster runs on Talos Linux: an OS with no shell, no SSH and no package manager, configured entirely through a declarative API.

flowchart LR
    cfg["Declarative node config"] --> api["OS API"]
    api --> node["Node (immutable)"]
    node --> k8s["Kubernetes"]

What changes in operations

  • Nodes are cattle, not pets. To change a node you change its config and apply it; you don't log in.
  • Same image, different hardware. The cluster mixes small ARM boards and one x86 machine with a GPU, all managed the same way.
  • Extensions go into the image, not manual installs. GPU drivers, for example, are system extensions chosen when the image is built.

Trade-offs

  • (+) Smaller attack surface and reproducible node state.
  • (+) OS upgrades are an API operation, with rollback.
  • (−) No SSH to "just fix it": every diagnosis goes through the API and logs.
  • (−) A learning curve and some VM-specific details (interface names, firmware) you only learn once.
  • (−) Slow storage on small nodes demands discipline: write-heavy workloads stay off them.