Storage Configuration

Storage Architecture #

Maintaining state in Kubernetes can be complex. I’m using a local path provisioner after having tried many other options which did not match my low risk apatite for storage. The code can be found here or here (post fluxcd migration).

Storage Tiers #

Each server has SSD and HDD storage. I created a predefined folder structures, each folder would answer to different storage requirements:

BackupVolatilitySpeed
- 1: Backed-up (High Availability)
- 2: Not Backed-up (Normal Availability)
- 1: Persistent, retained indefinite
- 2: Volatile, removed after 2 weeks
- 1: High speed SSD storage
- 2: Normal speed HDD Storage
- 3: Slower speed HDD storage

Generic Instances #

Class CodeImplemented server(s)BackupVolatilitySpeedHostpathReclaim
1111: linux-wayne111/mnt/ssd/ha/<service_name>manual
2111: linux-wayne211/mnt/ssd/na/<service_name>automatic
2211: linux-wayne221/mnt/ssd/tmp/<service_name>automatic
1121: linux-wayne112/mnt/hdd/ha/<service_name>manual
212 (default)1: linux-wayne212/mnt/hdd/na/<service_name>automatic
2221: linux-wayne222/mnt/hdd/tmp/<service_name>automatic

Specific Instances #

TODO: update

Class CodeImplemented server(s)BackupVolatilitySpeedPersistent Volume (PV) nameHostpath
2111: linux-wayne211nextcloud-config/mnt/ssd/ha/nextcloud/config/
2121: linux-wayne212nextcloud-data/mnt/hdd/ha/nextcloud/data/