kube/longhorn-system
2024-08-14 07:36:31 +03:00
..
.gitignore longhorn-system: Updates 2024-08-14 07:36:31 +03:00
application-extras.yml longhorn-system: Updates 2024-08-14 07:36:31 +03:00
backup.yaml longhorn-system: Updates 2024-08-14 07:36:31 +03:00
changes.diff longhorn-system: Updates 2024-08-14 07:36:31 +03:00
README.md longhorn-system: Updates 2024-08-14 07:36:31 +03:00

Longhorn distributed block storage system

For users

You should really avoid using Longhorn as it has over time proven to be unreliable system. Prefer using remote databases in your application via the Kubernetes operator pattern.

Use Longhorn for applications that need persistent storage, but are unable to provide replication in the application layer:

  • Applications that insist writing into filesystem
  • Applications that serve Git repositories (eg Gitea)
  • Applications that check out Git repositories (eg Woodpecker, Drone and CI systems)
  • Applications that need to use SQLite

Instead of using built-in longhorn storage class, please add new storage class with suitable replication, data locality parameters and reclaim policy https://git.k-space.ee/k-space/kube/src/branch/master/storage-class.yaml

Longhorn backups are made once per day and it's configured to be uploaded to the Minio S3 bucket hosted at nas.k-space.ee

For administrators

Longhorn was last upgraded with following snippet:

wget https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/deploy/longhorn.yaml
patch -p0 < changes.diff
kubectl -n longhorn-system apply -f longhorn.yml -f application-extras.yml -f backup.yaml

After initial deployment dedicated=storage:NoSchedule was specified for Kubernetes Taint Toleration under Setting -> General on Longhorn Dashboard. Suitable nodes were tagged with storage and Longhorn scheduling was disabled on others.

Refer to application.yaml to see how backups are configured.