Skip to content

Longhorn

Součást PiKube setupu na k3s. UI je zde: Longhorn GUI.

Zdroje

Docs: https://docs.k3s.io/storage Repo: home.mixi.cz:/srv/git/repos/home/automation.git, folder kube/longhorn

Setup

1. setup manifests

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
kubectl apply -f longhorn-ingress.yaml
kubectl apply -f longhorn-storageclass.yaml
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"} }}'
kubectl patch storageclass longhorn -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"} }}'

2. in Longhorn GUI set:

  • Default Longhorn Static StorageClass Name = longhorn-pikube (jinak bude špatná storage class na restorovaných volumes),

3. in Longhorn GUI set up nodes:

  • delete default /var/... path on all nodes,
  • on nodes with storage, configure proper path in /srv/kube/longhorn (optionally leave 1 GB as reserved)

Restore backup

  • po instalaci je potřeba nastavit backup target nfs://piback:/srv/backup/longhorn
  • pak je potřeba počkat než se backupy zmapují,
  • při restore je potřeba zaškrtnout use previous name
  • počkat na kompletní obnovu z backupu,
  • pak u obnoveného volume udělat Create PV/PVC - bez tohoto kroku se nedá spárovat volume s požadovaným podem,
  • také je nutné mít správnou velikost v kube manifestu, jinak se volume nespáruje,

Upgrade

Warning

Je nutné upgradovat vždy jen o jednu minor verzi (např. první upgrade několik let po setupu byl: v1.6.1 → v1.7.3 → v1.8.2 → v.1.9.1). Upgrade o více minor verzí není podporovaný!

  1. backup všech volumes: záložka Volume, označit vše a tlačítko Create Backup (dát label longhorn-upgrade=from_v1.6.1 - nahradit verzí ze které se upgraduje) – operace trvá cca 20 minut,
  2. zjistit poslední stable verzi pro upgrade (max. o jednu minor verzi vyšší, např. 1.7.3 pro upgrade z 1.6.1),
  3. upgrade jádra a UI:
    kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.7.3/deploy/longhorn.yaml
    
  4. pro každý volume provést ručně upgrade engine: záložka Volume, pro daný volume OperationUpgrade Engine → vybrat verzi co odpovídá jádru (např. 1.7.3).
  5. otestovat aplikace