skip to Main Content

Kubernetes Volumes NFS Dynamic Provisioning(ft. 아코디언v2)

컨테이너 환경에서 영구볼륨은 꼭 필요한 구성 요소입니다. Kubernetes 환경도 마찬가지로 볼륨은 중요한 요소 중 하나입니다. 다른점은 Pod Lifecycle에 따라

Static/Dynamic 하게 볼륨이 생성되고 관리되어야합니다.

이번 글에서는 Kubernetes Cluster NFS Dynamic Provisioning 방법 대해 알아보겠습니다. 구성은 helm 을 이용하였고 아코디언v2 에서 작업을 진행하였습니다.

💬 Kubernetes NFS Subdir External Provisioner

Kubernetes SIGs 에서 제공하고 있으며 NFS subdir external provisioner 는 구성되어있는 NFS 서버를 사용하여 PVC를 통해 Kubernetes PV의 동적 프로비저닝을

지원하는 자동 프로비저닝 도구입니다.

👨‍💻 Helm Chart 등록

아코디언 v2에서는 chartmuseum 을 제공합니다. 다운로드 받은 차트를 업로드하면 등록이 가능합니다. 또는 helm cli 를 통해서 차트를 등록하는 방법도 있습니다.

$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=x.x.x.x \
    --set nfs.path=/exported/path

👨‍💻 Install Helm Chart

등록된 nfs-subdir-external-provisioner 차트를 선택하여 헬름 배포를 진행합니다.

차트 설치에 필요한 요구 사전환경 및 파라미터를 가이드에서 숙지하고 넘어가면 value.yaml 편집 화면으로 넘어갑니다.

nfs server ip, path 를 입력하고 런치하여 차트 설치를 진행합니다.

정상적으로 차트 설치가 되었다면 스토리지 > 스토리지클래스에 nfs-client 라는 storageclass 가 생성되게 됩니다.

👨‍💻 Install MySQL

그럼 이제 생성된 스토리지클래스를 이용해보겠습니다. 동일한 방법으로 MySQL을 헬름을 이용하여 설치를 진행하고 mysql의 영구볼륨 설정을 storageclass 로 선택하여

이전 단계에서 생성한 nfs-client를 value.yaml 에 작성하고 차트 설치를 진행합니다.

이제 스토리지 > 퍼시스턴트볼륨클레임 에 가면 mysql pod 와 연결된 pvc가 생성된것을 확인할 수 있습니다.

이번 글에서는 NFS Dynamic Provisioning 을 구성해보았습니다. 아코디언에서는 Helm 배포 방식 이외에 카탈로그 방식을 지원하고 있습니다. 더 궁금한 사항은 아래 동영상을 참고해주세요.

새로운 아코디언 배포 방식 알아보기

🔗 Related Links

https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

https://artifacthub.io/packages/helm/nfs-subdir-external-provisioner/nfs-subdir-external-provisioner/4.0.1

Back To Top