Project Goals & Scope
This is an educational project to build a hybrid x86/ARM Kubernetes cluster at home, using Raspberry Pi and refurbished x86 mini PCs, learn to deploy basic kubernetes services and automate its deployment and configuration applying IaC (infrastructure as a code) and GitOps
methodologies with tools like Ansible and Argo CD.
The entire process for creating this cluster at home, from cluster design and architecture to step-by-step manual configuration guides, has been documented. You can find all this information in the docs section, so you can build your own home cluster.
Automation code (Ansible source code) and packaged Kubernetes applications (that can be deployed using ArgoCD) are also at your disposal in the project's git repository.
The project scope includes the automation of the deployment and configuration of a lightweight Kubernetes flavor, K3S, and basic cluster services such as: 1) distributed block storage for PODs' persistent volumes, Longhorn, 2) backup/restore solution, Velero and Restic, 3) service mesh architecture, Linkerd, and 4) observability platform based on metrics monitoring solution, Prometheus, logging and analytics solution, EFḰ+LG stack (Elasticsearch-Fluentbit-Kibana + Loki-Grafana), and distributed tracing solution, Tempo.
Perfect for educational purpuses
Ideal to know the state of the art of hybrid ARM-x86 Kubernetes clusters and to play with different cluster services and applications using low-performance bare metal servers instead of virtual machines.
Low cost Kubernetes cluster
All it is needed is a bunch of Raspberry PIs, (4 Model-B with 4GB) USB sticks, a power hub, and a Ethernet Switch.
Anyway you can drive yourself mad, like I did, and buy more staff like dedicated SSDs disks to improve cluster performance. Or scale it up adding more powerfull x86 mini PCs
Automatically rebuild the cluster
You can break the cluster configuration as many times as you need during your testing/learning process and be able to rebuild the cluster in minutes. All installation/configuration activities are automated with Ansible/Argo CD. It also makes easy to re-configure cluster nodes in case of hardware failure