While all aplications are created equal(or not), some are more important than others. Following below is a list of the core-components of the cluster.
- Flux: GitOps operator for managing a Kubernetes clusters from a Git repository.
- Kube-VIP: Load balancer for the Kubernetes control plane nodes.
- MetalLB: MetalLB load-balancer implementation for bare metal clusters.
- Cert-Manager: Operator issuing SSL certificates and storing them in kubernetes resources.
- Calico: Networking and security for containers and Kubernetes services networking.
- ExternalDNS: Operator publishing DNS records to public DNS based on Kubernetes ingresses.
- K8s-Gateway: DNS Resolver providing local DNS to Kubernetes ingresses.
- NGINX Ingress Controller: Kubernetes ingress controller used as a HTTP reverse proxy of ingresses.
- Rook-Ceph: Distributed block storage for persistent storage.
- SOPS: Secret secrets for Kubernetes, Ansible and Terraform that can be commited to Git.
In no specific order heres rest of what's running in the cluster. Subject to change
- CloudNativePG: Operator covering full lifecycle of HA PostgreSQL database cluster.
- MariaDB: MariaDB SQL database server.
- pgAdmin: PostgreSQL administration and development.
- phpMyAdmin: MariaDB/MySQL administration and development.
- Redis: In-memory data structure store. Key-value database. HA using Redis Sentinel.
- HAProxy: Loadbalancer for HA-Redis Cluster.
- qBittorent: Downloading client for Linux ISO's. ☠️
- Echo-Server: Connection testing.
- Hajimari: Simplistic dashboard with Kubernetes application discovery.
- Weave GitOps: Dashboard for Flux GitOps
- Nextcloud: OneDrive replcement for filesharing and document editor using Collabra add-on
- Intel-device-plugin: Provides access to Intel GPU devices.
- Local Path Provisioner: Provides a way for Kubernetes to utilize local storage of each node.
- Metrics Server: Collects metrics from Kublets and exposes them in Kubernetes API-server.
- Node Feature Discovery: Discovery of hardware features and system configuration.
- Reloader: Watches for changes in ConfigMaps and Secrets to perform rolling uppgrades on Deployments.
- Plex: Self-Hosted Media server
- Prowlarr: Indexer manager/proxy. ☠️
- Sonarr: PVR monitoring RSS feeds. ☠️
- Radarr: PVR monitoring RSS feeds. ☠️
- Goldilocks: Provides resource recommendations using VPA in Kubernetes.
- Grafana: Visualization for various metrics collected inside the cluster.
- Prometheus: Metrics&Altering - Deployed using Kube-Prometheus-Stack.
- Kubernetes Dashboard: Basic Kubernetes interface of applications.
- VPA: Used to provide resource recommendations via Goldilocks
- Cloudflare DDNS Used together with a shell-script to update public DNS record in Cloudflare
- MinIO: Object Storage - Used to expose a NFS share as a S3 endpoint.
- System Upgrade Controller: Used to plan and execute upgrades of Kubernetes nodes.
- Pod-Gateway: Used to route trafic from pods through another gateway. Uses gateway admision controller to mutate pods.
- Littlelink: Selfhosted DIY alternative to Linktree
- Matomo: Self-hosted alternative to Google Analytics
Device | Count | OS Disk Size | Data Disk Size | Ram | Operating System | Purpose |
---|---|---|---|---|---|---|
Lenovo ThinkCentre M710q | 3 | 128GB SSD | - | 16GB | Ubuntu 22.04 | Kubernetes Control Plane |
Lenovo ThinkCentre M920q | 3 | 128GB SSD | 1TB NVMe Crucial P3 (ceph) | 32GB | Ubuntu 22.04 | Kubernetes Workers |
Synology DS412 | 1 | - | 4x3TB SHR | 2GB | DSM | NFS |
Netgear ReadyNAS 2100 | 1 | - | 4x2TB | 2GB | ReadyNAS OS6 | Backup & Testing |
Raspberry Pi 4 | 1 | 32GB (SD) | - | 4GB | Raspbian | DNS-Backup |
UniFi Dream Machine Pro | 1 | - | - | - | - | Firewall/Controller |
UniFi Switch 16-POE 150W | 1 | - | - | - | - | Switching |
UniFi UAP-AC-LR | 1 | - | - | - | - | Wirless Networking |
IKEA Tradfri Gateway | 1 | - | - | - | - | Smart Home |
HP ML350p Gen8 | 1 | 600GB | 6x300GB | 64GB | ESXI | Random tests not used for K8s |
Shoutout to k8s@home and specially onedr0p.
Continue writing this readme to add installation guide, list of used apps, hardware and more.