K3s-cluster/README.md

57 lines
4.9 KiB
Markdown

# 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 | Yes |
| Adguard | DNS ad blocker and custom DNS server | Private | Socrates | - | <center> ? </center> | Yes |
| Owncloud Infinity Scale | File hosting webUI | Public | Plato | PostgreSQL | <center> ? </center> | No |
| Home assistant | Home automation and monitoring | Private | Pythagoras-a | PostgreSQL | <center> ? </center> | No |
| Vikunja | To-do and Kanban boards | Public | Pythagoras-b | - | <center> ? </center> | No (To be integrated in Gitlab) |
| Gitlab | Version control system | Public | Pythagoras-b | PostgreSQL | <center> ? </center> | No |
| Wiki | Documentation manager | Public | Pythagoras-b | - | <center> ? </center> | No (Migrate to VuePress and Gitlab) |
| Vaultwarden | Password manager | Public | Pythagoras-b | PostgreSQL | <center> ? </center> | No |
| Synapse | Matrix server - Message centralizer | Public | Pythagoras-b | PostgreSQL | <center> ? </center> | No |
| PaperlessNG | PDF viewer and organiser | Public | Pythagoras-b | PostgreSQL | <center> ? </center> | No |
| Raspsnir | Bachelor memorial website | Public | Pythagoras-b | PostgreSQL | <center> ? </center> | No |
| Jellyfin | Media streaming | Public | Archimedes | - | <center> ? </center> | No |
| Sonarr | TV shows collection manager | Private | Plato | SQLite** | <center> ? </center> | No |
| Radarr | Movie collection manager | Private | Plato | SQLite** | <center> ? </center> | No |
| Jackett | Torrent indexer | Private | Plato | - | <center> ? </center> | No |
| Deluge | Torrent client | Private | Plato | - | <center> ? </center> | No |
| Minecraft | Vanilla minecraft server for friends | Public | Archimedes | - | Longhorn snapshots | Yes |
| Satisfactory | Satisfactory server for friends | Public | Archimedes | - | Longhorn snapshots | No |
| Space engineers | Space engineers server for friends | Public | Archimedes | - | Longhorn snapshots | No |
\* Configuration panel only available internally<br>
** Current implementation only support SQLite, making manual backups a necessity
## Completed
- Add TLS certificates for every http applications
## 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
- Setup internal traefik with nodeport as reverse proxy for internal only services
- Setup DB container sidecars for automated backups to Longhorn volume
- ~~Look into CockroachDB for redundant database~~ Judged too complicated, moving to a 1 to 1 relationship between services and databases
- ~~Configure IP range accessibility through Traefik (Internal vs external services)~~ Impossible because of flannel ip-masq
## 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
```