Introduction to Bifrost
Bifrost is a Kubernets cluster running in the Hetzner infrastructure and is based on Talos
Knowledge prerequisite
In this documentation, we assume the following:
- You have basic knowledge of Kubernetes (and of course general IT knowledge). This means i.e you know what a PVC, Node, Ingress and so forth is. We try to be general, but these are terms which would add a lot of extra text to explain something that is found in other places.
Features
The Bifrost cluster is based on Talos, which is an operating system which only exposes the Kubernetes API and the Talos API which is used to manage the cluster. SSH access is not possible to the nodes.
SSH access is not possible to the nodes. You need to use Talosctl to manange nodes.
Talos is also opionated and focused on safety, so it comes with some default security measures.
The cluster itself runs in Hetzner using both their cloud servers and root/robot servers (dedicated servers). This allows us to quickly scale up the cluster if needed and comes with redudant hyper scalable storage, which can be used i.e for autoscaling but also gives us some metal servers which allows us to optimize for cost, performance and also comes with dedicated disks we can run rook-ceph on (as rook-ceph needs raw disks). Root servers can take a few business days to set up, meanwhile cloud servers can be spun up in less than a second.
A quick overview of the cluster is:
- Talos
- Hetzner cloud and robot/root servers
- Cilium CNI
- Hetzner CSI for cloud servers allowing quickly scalable storage PV0 PVC
- Rook-ceph for robot/root servers for high performance and RDX PVC
- Fluxcd for GitOps/declerative configuration
- Local storage provider for databases
Resources
- Datavirke - Good doc on how to set up root/dedicated servers on Hetzner. Works with a few modifications due newer versions of Talos.
- Talos - scaling up - How to add a new node to the cluster using root/dedicated servers.
- Talos - Hetzner - How to add a new node using the Hetzner cloud servers.