Skip to content

mihirsamdarshi/pancakebatter

Repository files navigation

My Kubernetes Lab cluster ⛵️

... managed with Flux and Renovate 🤖


k3s renovate


📖 Overview

This is home to my personal Kubernetes lab cluster. Flux watches this Git repository and makes the changes to my cluster based on the manifests in the kubernetes directory. Renovate also watches this Git repository and creates pull requests when it finds updates to Docker images, Helm charts, and other dependencies.


⛵ Kubernetes

I used the onedr0p/flux-cluster-template as a starting point for my cluster.

Installation

My cluster is k3s provisioned overtop Ubuntu Proxmox VMs using the Ansible galaxy role ansible-role-k3s. This is a semi hyper-converged cluster, workloads are sharing the same available resources on my nodes while I have a separate VM running TrueNAS Scale for data storage.

🔸 Click here to see my Ansible playbooks and roles._

Core Components

  • kube-vip: Announces the kubeserver api via BGP
  • metallb: Announces loadbalancers via BGP
  • cert-manager: Creates SSL certificates for services in my Kubernetes cluster
  • external-dns: Automatically manages DNS records from my cluster in a cloud DNS provider
  • k8s-gateway: Runs a separate internal-only DNS zone for some services
  • ingress-nginx: Ingress controller to expose HTTP traffic to pods over DNS
  • sops: Managed secrets for Kubernetes, Ansible and Terraform which are commited to Git
  • cilium: Provides networking, security, and observability
  • rook-ceph: Provides block, object, and file storage

GitOps

Flux watches my kubernetes folder (see Directories below) and makes the changes to my cluster based on the YAML manifests.

Renovate watches my entire repository looking for dependency updates, when they are found a PR is automatically created. When some PRs are merged Flux applies the changes to my cluster.


🔧 Hardware

Device Processor Ram OS Disk Size Data Disks Operating System Purpose
Dell Precision Tower 9710 2 x Intel Xeon CPU E5-2687W v4 128 GB 2TB NVME 6 x 4TB HDD / 2 x 8TB HDD / 1 x 240GB SSD Debian 11 (PVE) Virtualization Host / NAS
Dell Optiplex 5050 1 x Intel Core i5-7600T 32GB 256GB NVMe - Debian 11 (PVE) Virtualization Host
Dell Optiplex 5060 1 x Intel Core i5-8500T 32GB 256GB NVMe - Debian 11 (PVE) Virtualization Host
Raspberry Pi 4 Model B 1 x Broadcom BCM2711 8GB 64GB SD Card - Raspbian Misc
TP-Link TL-SG105 - - - - - Network Switch

🔨Cluster Rebuild Counter

Times Rebuilt Last Updated
12 7/15/2023

🤝 Acknowledgements

A lot of inspiration for my cluster comes from the people that have shared their clusters using the k8s-at-home GitHub topic and the Kubernetes@Home search .

🔏 License

See LICENSE