1) Intall Longhorn by helm
https://longhorn.io/docs/1.1.2/deploy/install/install-with-helm/
helm repo add longhorn https://charts.longhorn.io
kubectl create namespace longhorn-system
helm install longhorn longhorn/longhorn --namespace longhorn-system
Nếu bạn có cluster có nhưng node chạy SSD và bạn muốn longhorn được deploy trên đó thì làm theo mình
kubectl label nodes k8s-worker-storage1 node=storage-ssd
kubectl taint node k8s-worker-storage1 node=storage-ssd:NoSchedule
Tham khảo bài viết trên để hiều tains and tolerations node
sử value này cho helm
longhornManager:
tolerations:
- key: "node"
operator: "Equal"
value: "storage-ssd"
effect: "NoSchedule"
nodeSelector:
node: "storage-ssd"
longhornDriver:
tolerations:
- key: "node"
operator: "Equal"
value: "storage-ssd"
effect: "NoSchedule"
nodeSelector:
node: "storage-ssd"
longhornUI:
tolerations:
- key: "node"
operator: "Equal"
value: "storage-ssd"
effect: "NoSchedule"
nodeSelector:
node: "storage-ssd"
2) Overview and material references
sau khi deploy xong thì kiểm tra
Tiện mà mình rút ra:
- Quản lý, tạo, xoá PV và PVC rất tiện và dễ thực hiện.
- Dynamically provision persistent volumes in Kubernetes: rất tiện cho anh/em khi cài app thông qua helm, không phải suy nghĩ nên tạo pvc và pv như thế nào.
Có video hướng dẫn luôn nhé! mọi người coi để thấy cách control longhorn như thế nào
3) Practice – update Sat 23 Oct 2021
Như trước thì mình sẽ cần tạo pv, rồi tạo pvc
Giờ nhẹ nhàng hơn bạn chỉ apply pvc với storageClass là longhorn
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
labels:
name: jenkins-permanent
name: jenkins-permanent
spec:
storageClassName: longhorn
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "8Gi"
4) Upgrade longhorn
Issues of Longhorn.
MountVolume.MountDevice failed for volume — bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program
MountVolume.MountDevice failed for volume "pvc-f7c230ba-57cd-4147-a902-0fe075060b53" : rpc error: code = Internal desc = mount failed: exit status 32 Mounting command: /usr/local/sbin/nsmounter Mounting arguments: mount -t nfs -o vers=4.1,noresvport,intr,hard 10.111.151.228:/pvc-f7c230ba-57cd-4147-a902-0fe075060b53 /var/lib/k0s/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/02764390c733a2577940cd8ae3d7da38a5839b94f4ace49a3a5b6f138cf05518/globalmount Output: mount: /var/lib/k0s/kubelet/plugins/kubernetes.io/csi/driver.longhorn.io/02764390c733a2577940cd8ae3d7da38a5839b94f4ace49a3a5b6f138cf05518/globalmount: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
Nếu gặp lỗi trên thì bạn thực hiện cài đặt.
sudo apt install nfs-common
sudo apt install cifs-utils
Sau đó restart server.