K3s-cluster/README.md

3.7 KiB

K3s cluster

Name Usage Accessibility Host DB type Automated backups Configured
therbron.com Personal website Public Socrates - Nothing to backup No
Traefik Reverse proxy and load balancer Public* Socrates - Git configuration Partial (Missing TLS)
Adguard DNS ad blocker and custom DNS server Private Socrates - ? Yes
Owncloud Infinity Scale File hosting webUI Public Plato PostgreSQL ? No
Home assistant Home automation and monitoring Private Pythagoras-a PostgreSQL ? No
Vikunja To-do and Kanban boards Public Pythagoras-b - ? No (To be integrated in Gitlab)
Gitlab Version control system Public Pythagoras-b PostgreSQL ? No
Wiki Documentation manager Public Pythagoras-b - ? No (Migrate to VuePress and Gitlab)
Vaultwarden Password manager Public Pythagoras-b PostgreSQL ? No
Jellyfin Media streaming Public Archimedes - ? No
Sonarr TV shows collection manager Private Plato SQLite** ? No
Radarr Movie collection manager Private Plato SQLite** ? No
Jackett Torrent indexer Private Plato - ? No
Deluge Torrent client Private Plato - ? No
Minecraft Vanilla minecraft server for friends Public Archimedes - Longhorn snapshots Yes

** Current implementation only support SQLite, making manual backups a necessity

TODO

  • Change host/deployment specific variables to use environment variables
  • Write CI/CD pipeline to create environment loaded files
  • Write CI/CD pipeline to deploy cluster
  • Look into CockroachDB for redundant database
  • Add TLS certificates for every http applications
  • Configure IP range accessibility through Traefik (Internal vs external services)

Notes

Add node to the list of available load balancer kubectl label node <node-name> svccontroller.k3s.cattle.io/enablelb=true

Install traefik through helm

helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install -f helm/traefik/values.yaml traefik traefik/traefik

Install longhorn

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml