Longhorn storage class là một object trên K8S đảm nhiệm việc nhận các yêu cầu tạo Volume trên K8S (PV/PVC) sau đó kết nối với longhorn storage để tạo ra phân vùng lưu trữ trên thiết bị lưu trữ. Tới đây lại phải nhớ trong đầu là ta sẽ phải tạo 2 loại storage class ứng với 2 loại reclaim policy là delete và retain. Ta tạo 2 file config như sau:
– longhorn-storageclass-delete.yaml
echo '''
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn-storage-delete
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
numberOfReplicas: "2"
staleReplicaTimeout: "2880"
fromBackup: ""
fsType: "ext4"
''' > ./longhorn-storageclass-delete.yaml
– longhorn-storageclass-retain.yaml
echo '''
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: longhorn-storage-retain
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Retain
volumeBindingMode: Immediate
parameters:
numberOfReplicas: "2"
staleReplicaTimeout: "2880"
fromBackup: ""
fsType: "ext4"
''' > ./longhorn-storageclass-retain.yaml
Triển khai longhorn-storageclass-delete.yaml
$ kubectl apply -f longhorn-storageclass-delete.yaml
storageclass.storage.k8s.io/longhorn-storage-delete created
Triển khai longhorn-storageclass-retain.yaml
$ kubectl apply -f longhorn-storageclass-retain.yaml
storageclass.storage.k8s.io/longhorn-storage-retain created
Verify lại kết quả triển khai
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
longhorn (default) driver.longhorn.io Delete Immediate true 23m
longhorn-storage-delete (default) driver.longhorn.io Delete Immediate true 36s
longhorn-storage-retain driver.longhorn.io Retain Immediate true 14s
Như vậy tới đây bạn đã hoàn thành cài đặt storage class trên cụm kubernetes rồi.