Skip to content

Longhorn — Commands & Recipes

Installation

# Install via Helm
helm repo add longhorn https://charts.longhorn.io
helm install longhorn longhorn/longhorn \
  --namespace longhorn-system \
  --create-namespace \
  --set defaultSettings.defaultReplicaCount=3

# Access UI
kubectl port-forward -n longhorn-system svc/longhorn-frontend 8080:80

Volume Management

# StorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: longhorn-fast
provisioner: driver.longhorn.io
allowVolumeExpansion: true
parameters:
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fsType: ext4
# PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mydata
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn-fast
  resources:
    requests:
      storage: 10Gi

Backup & Restore

# Configure backup target (S3)
kubectl -n longhorn-system edit settings backup-target
# Set to: s3://my-backup-bucket@us-east-1/

# Create backup via kubectl
kubectl -n longhorn-system create -f - <<EOF
apiVersion: longhorn.io/v1beta2
kind: Backup
metadata:
  name: mydata-backup
spec:
  snapshotName: mydata-snap-1
EOF

Troubleshooting

# Check volume status
kubectl -n longhorn-system get volumes.longhorn.io
kubectl -n longhorn-system get replicas.longhorn.io

# Check engine status
kubectl -n longhorn-system get engines.longhorn.io

# View Longhorn manager logs
kubectl -n longhorn-system logs -l app=longhorn-manager -f

# Node health
kubectl -n longhorn-system get nodes.longhorn.io -o wide

Sources