Raspberry Pi Kubernetes Cluster Project Website
K3S Kubernetes cluster using ARM architecture automated with Ansible and ArgoCD.
Project Goals & Scope
This is an educational project to explore kubernetes cluster configurations using an ARM architecture and
to 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 Kubernetes ARM-based clusters and to play with different cluster services and applications using low-performance bare metal servers instead of x8086-based 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.
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