Helm paket yöneticisini daha önceden kurmadıysanız aşağıdaki yazım üzerinden ilk olarak kurulumu gerçekleştirin.
Longhorn reposunu helm’e ekleyelim.
helm repo add longhorn https://charts.longhorn.io
Repoyu update edelim
helm repo update
Longhorn’u kubernetes üzerinde kaldıralım
helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace
Kurulum biraz vakit alacaktır. Tüm podların sorunsuz çalıştığından emin olalım.
kubectl -n longhorn-system get pod
NAME READY STATUS RESTARTS AGE
csi-attacher-5f46994f7-cg5km 1/1 Running 0 31s
csi-attacher-5f46994f7-kkhmq 1/1 Running 0 31s
csi-attacher-5f46994f7-rhhrw 1/1 Running 0 31s
csi-provisioner-6ccbfbf86f-crfgg 1/1 Running 0 31s
csi-provisioner-6ccbfbf86f-p47ch 1/1 Running 0 31s
csi-provisioner-6ccbfbf86f-tl7mp 1/1 Running 0 31s
csi-resizer-6dd8bd4c97-22ztk 1/1 Running 0 30s
csi-resizer-6dd8bd4c97-2x6ft 1/1 Running 0 30s
csi-resizer-6dd8bd4c97-k24ns 1/1 Running 0 30s
csi-snapshotter-86f65d8bc-5nltl 1/1 Running 0 30s
csi-snapshotter-86f65d8bc-fwnns 1/1 Running 0 30s
csi-snapshotter-86f65d8bc-wf4fv 1/1 Running 0 30s
engine-image-ei-fa2dfbf0-6qs77 1/1 Running 0 72s
engine-image-ei-fa2dfbf0-mnmdm 1/1 Running 0 72s
engine-image-ei-fa2dfbf0-pb8g2 1/1 Running 0 72s
instance-manager-e-0a4ba5f6 1/1 Running 0 70s
instance-manager-e-62515edc 1/1 Running 0 52s
instance-manager-e-ab0f896a 1/1 Running 0 71s
instance-manager-r-4f7e39d9 1/1 Running 0 70s
instance-manager-r-763043d8 1/1 Running 0 71s
instance-manager-r-7f4dde11 1/1 Running 0 52s
longhorn-csi-plugin-9f7w5 2/2 Running 0 30s
longhorn-csi-plugin-fcbfw 2/2 Running 0 30s
longhorn-csi-plugin-swwr5 2/2 Running 0 30s
longhorn-driver-deployer-6db849975f-tnq8r 1/1 Running 0 98s
longhorn-manager-2fhct 1/1 Running 0 98s
longhorn-manager-5w4b8 1/1 Running 0 98s
longhorn-manager-648w9 1/1 Running 1 98s
longhorn-ui-6f547c964-frvxr 1/1 Running 0 98s
Daha sonra uygulamanın dashboard kısmını webden görüntülemek için Ingress oluşturun.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
field.cattle.io/publicEndpoints: '[{"addresses":["10.0.0.100"],"port":80,"protocol":"HTTP","serviceName":"longhorn-system:longhorn-frontend","ingressName":"longhorn-system:longhorn","hostname":"longhorn.sezer.test","path":"/","allNodes":true}]'
creationTimestamp: "2022-02-26T11:05:03Z"
generation: 2
managedFields:
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.: {}
f:field.cattle.io/publicEndpoints: {}
f:spec:
f:ingressClassName: {}
f:rules: {}
manager: agent
operation: Update
time: "2022-02-26T11:06:15Z"
- apiVersion: networking.k8s.io/v1
fieldsType: FieldsV1
fieldsV1:
f:status:
f:loadBalancer:
f:ingress: {}
manager: nginx-ingress-controller
operation: Update
time: "2022-02-26T11:06:15Z"
name: longhorn
namespace: longhorn-system
resourceVersion: "13646754"
uid: 6c6e63ca-5575-4bb3-95a5-fc8a52c49a5f
spec:
ingressClassName: nginx
rules:
- host: longhorn.sezer.test
http:
paths:
- backend:
service:
name: longhorn-frontend
port:
number: 80
path: /
pathType: Prefix
status:
loadBalancer:
ingress:
- ip: 10.0.0.100
NOT: Ayrıca longhorn front-end kısmı herhangi bir auth gerektirmeden giriş yapılabildiği için ingress içerisine basic auth ekleyebilirsiniz.
Basic Auth
Öncelikle aşağıdaki komutu kendimize göre düzenleyelim. “foo kullanıcı adı bar şifre olarak aşağıdaki komutta yer almakta”
USER=foo; PASSWORD=bar; echo "${USER}:$(openssl passwd -stdin -apr1 <<< ${PASSWORD})" >> auth
Komut auth adlı dosyaya bilgileri yazacaktır.
cat auth
foo:$apr1$FnyKCYKb$6IP2C45fZxMcoLwkOwf7k0
Auth dosyasını longhorn secret ‘a ekleyelim
kubectl -n longhorn-system create secret generic basic-auth --from-file=auth
secret/basic-auth created
Ardından ingress’e annotations kısmına aşağıdaki değişkenleri ekleyelim
annotations:
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/ssl-redirect: 'false'
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required '
nginx.ingress.kubernetes.io/proxy-body-size: 10000m
Artık front-end kısmına giriş yaptığınız zaman kullanıcı adı – şifre soracaktır.