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