MariaDB, Persistent Volume

Jeonghak Cho·2024년 11월 19일

MariaDB

목록 보기
5/11

볼륨은 쿠버네티스 오브젝트가 아니기 때문에 스스로 생성/삭제가 되지 않는다. 영구 볼륨(Persistent Volume)은 데이터베이스 서버의 데이터 영역을 마운트하여 데이터베이스 서버를 삭제하더라도 유지하도록 한다.

StorageClass 가 정의되면 PV를 동적으로 프로비저닝할 수 있다. 관리자는 StorageClass를 정의하고, 개발자는 PVC에 StorageClass 를 명기함으로써 원하는 용량과 유형의 저장소를 POD에 마운트할 수 있다.
로컬에서 진행할 경우 저장장치 공급자에 의해 제공되는 볼륨이 없으므로 provisoner를 kubernetes.io/no-provisioner 로 설정한다.

mdb-sc.yml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
vagrant@master:~$ k apply -f mdb-sc.yml
storageclass.storage.k8s.io/local-storage unchanged
vagrant@master:~$ k get sc
NAME            PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
local-storage   kubernetes.io/no-provisioner   Delete          Immediate           false                  2d1h

마스터 1개, 슬레이브 2개 데이터베이스 서버 생성을 위해 PV 3개 정의

mdb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mypv1
  labels:
    type: local
spec:
  storageClassName: local-storage
  persistentVolumeReclaimPolicy: Delete
  capacity:
    storage: 500Mi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data1"
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mypv2
  labels:
    type: local
spec:
  storageClassName: local-storage
  persistentVolumeReclaimPolicy: Delete
  capacity:
    storage: 500Mi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data2"
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mypv3
  labels:
    type: local
spec:
  storageClassName: local-storage
  persistentVolumeReclaimPolicy: Delete
  capacity:
    storage: 500Mi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data3"  
vagrant@master:~$ k apply -f mdb-pv.yml
persistentvolume/mypv1 created
persistentvolume/mypv2 created
persistentvolume/mypv3 created
vagrant@master:~$ k get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS    REASON   AGE
mypv1   500Mi      RWO            Delete           Available           local-storage            6s
mypv2   500Mi      RWO            Delete           Available           local-storage            6s
mypv3   500Mi      RWO            Delete           Available           local-storage            6s

0개의 댓글