Longhorn Setup

guides/longhorn/longhorn.jpg

Helm

Add the Longhorn Helm repository:

1helm repo add longhorn https://charts.longhorn.io

Fetch the latest charts from the repository:

1helm repo update

Install Longhorn in the longhorn-system namespace.

To install Longhorn with Helm 3, use the commands:

1helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace

To confirm that the deployment succeeded, run:

1kubectl -n longhorn-system get pod

Install UI

Create Ingress

 1apiVersion: traefik.containo.us/v1alpha1
 2kind: IngressRoute
 3metadata:
 4  name: longhorn-ingress-route
 5  namespace: longhorn-system
 6  annotations:
 7    kubernetes.io/ingress.class: traefik-class
 8spec:
 9  entryPoints:
10    - websecure
11  routes:
12    - match: Host(`longhorn.domain.name`)
13      kind: Rule
14        #      middlewares:
15        #- name: longhorn-dashboard-basicauth
16        # namespace: longhorn-system
17      services:
18        - name: longhorn-frontend
19          port: 80
20  tls:
21    secretName: longhorn-secret-tls

optional auth

1apiVersion: traefik.containo.us/v1alpha1
2kind: Middleware
3metadata:
4  name: longhorn-dashboard-basicauth
5  namespace: longhorn-system
6spec:
7  basicAuth:
8    secret: longhorn-dashboard-auth

Install htpassword

1sudo apt-get update
2sudo apt-get install apache2-utils

Generate a credential / password that’s base64 encoded

1htpasswd -nb username password | openssl base64
1apiVersion: v1
2kind: Secret
3metadata:
4  name: longhorn-dashboard-auth
5  namespace: longhorn-system
6type: Opaque
7data:
8  auth: password

Add to longhorn folder

1
2kubectl apply -f k8s/longhorn