Home Lab
Three old computers running a hardened, highly-available Kubernetes cluster — hosting message queues, databases, a git runner, and whatever else needs a home.
- Kubernetes
- RKE2
- Longhorn
- Istio
- Helm
- Linux
- YAML
- Git
- CI/CD
Three-Node HA
The cluster runs RKE2, Rancher's hardened Kubernetes distribution, across three physical machines. Every node acts as both a control plane member and a worker — there are no dedicated roles. This means the cluster tolerates losing any single machine while continuing to schedule and run workloads normally.
Longhorn
Persistent volumes are backed by Longhorn, a lightweight distributed block storage engine built for Kubernetes. Longhorn replicates volume data across nodes so that storage survives individual machine failures without manual recovery. Each volume can be snapshotted and restored independently.
Istio & Wildcard TLS
The service mesh is handled by Istio, which manages traffic routing and mTLS between services. A wildcard DNS
record points *.k8s.peterpinto.dev at the cluster, so exposing any service externally is a matter of creating
a Gateway resource with the right hostname — TLS is handled automatically.
What's Running
The cluster hosts a mix of infrastructure services and experimental projects, none of which are intended for public access:
- Gitea Actions Runner — CI for projects hosted on the local Gitea instance
- RabbitMQ — message broker used by internal services
- Matrix — self-hosted messaging server
- InfluxDB — time-series database for metrics and sensor data
- SpacetimeDB — experimental database for a game project in progress
kubectl & Helm
Deployments are managed with plain kubectl or Helm depending on complexity. Simple, stateless services get raw manifests
applied directly. Anything with meaningful configuration, versioning, or upgrade
requirements gets a Helm chart — either an upstream chart with a custom values.yaml or a local one written from scratch.