Check out my blog post on Moving to Kubernetes
Hosts ever growing number of services.
- Sonarr
- Radarr
- Jackett
- Tautulli
- Factorio
- PostgreSQL
Kubernetes is setup through LINDS-Puppet.
Consists of:
- 1x Master node (CentOS 9)
- 3x Worker nodes (CentOS 9)
2 worker nodes are in one physical location, and the last worker node in another.
- 2x TrueNAS hosts (100GB NFS Storage)
The TrueNAS machines rsync to each other the differences for the PVC(Physical Volume Claims) for redundancy.
Uses MetalLB to expose these services through 2 different modes.
L2 (Layer 2) Advertisements, which just uses ARP for IPv4.
BGP Advertisements, which advertises to the 2 OPNSense box the route to the service.
$ git clone git@github.com:Jayden-Lind/LINDS-Kube.git
$ chmod +x app-deployment.sh; ./app-deployment.sh
2 Secrets are required for operation.
- kubernetes.io/tls secret.
- SMB/CIFS credentials for mounting SMB shares in a pod.
NOTE
Ensure to base64
these secret values before applying them.
---
apiVersion: v1
kind: Secret
metadata:
name: linds-certificate-secret
namespace: default
type: kubernetes.io/tls
data:
tls.crt: xxx
tls.key: xxx
---
apiVersion: v1
kind: Secret
metadata:
name: linds-smb-secret
namespace: default
type: smb.csi.k8s.io
data:
username: xxx
password: xxx