안녕하세요, IBM 양현주입니다.

* 본 포스팅은 영문 포스팅의 번역본으로 사용자 편의를 위해 일부 수정이 되었습니다.
원본은 링크를 참고하시기 바랍니다

Kubernetes 클러스터의 주요 리소스 중 하나는 스토리지, 즉 Persistent Volume 입니다.

이것은 Kubernetes의 용어이며
PersistentVolume (PV)는 인프라에서 생성된 시스템 레벨의 스토리지
PersistentVolumeClaim (PVC)는 애플리케이션에서 스토리지(PV)를 사용하도록 하기 위한 요청권과 같은 것이라고 보시면 되겠습니다.

Kubernetes에서는 컨테이너가 삭제 되더라도 애플리케이션의 데이터가 지속되도록 하기 위해 스토리지 (PersistentVolume)를 사용합니다.
이를 위해 애플리케이션을 배포하기 전에 인프라에서 스토리지 생성 후 PersistentVolumeClaim을 만듭니다.
그리고 애플리케이션에서 해당 PersistentVolumeClaim을 사용하도록 합니다.

본 포스팅에서는 편의를 위해 PersistentVolume은 PV로, PersistentVolumeClaim은 PVC로 지칭하겠습니다.

Persistent Volume이 어떻게 할당 되나요?

500Gi의 용량으로 클러스터에 PV를 프로비저닝 한 경우 700Gi의 요청이 있는 PVC는 요구사항을 충족하는 PV가 프로비저닝 될 때 까지 클러스터에서 Unbound 상태를 유지합니다.
이 요청을 충족시키는 PV가 생성되면 그 때서야 PVC는 사용 가능한 PV에 Binding 되어 사용할 준비가 됩니다.

Native Kubernetes 기반인 IBM Cloud Private에서도 동일합니다.
IBM Cloud Private의 웹 관리 콘솔에서 PV와 PVC를 생성한 다음,
애플리케이션 배포 단계에서 PVC를 연동할 (attach) 수 있습니다.

IBM Cloud Private은 아래 Volume type을 포함, Kubernetes에서 지원하는 모든 Volume type을 지원합니다.

  • NFS
  • GlusterFS
  • vSphere Virtual Volume
  • hostPath

IBM Cloud Private 지원 스토리지 타입Kubernetes 지원 스토리지 타입 에 대한 자세한 내용은 링크를 참고하십시오.

IBM Cloud Private 실행 애플리케이션에 Persistent Volume 할당하는 워크플로우

본 포스팅에서는 아래의 세 단계에 걸쳐 Kubernetes 기반 IBM Cloud Private에서 스토리지 사용하도록 하겠습니다.

  1. NFS 에서 Persistent Volume 생성
  2. Persistent Volume Claim을 생성해 가용한 Persistent Volume에 대한 요청 수행
  3. Volume 과 attach하여 애플리케이션 배포

[1단계] 시스템 레벨에서 Persistent Volume 생성하기

시작하기 전에

  • NFS 서버가 설치 되어 있어야 합니다. IBM Cloud Private에서 지원되는 NFS 버전은 지원 파일 시스템 및 스토리지를 참고하시기 바랍니다.
  • NFS 클라이언트 패키지가 IBM Cloud Private 클러스터 내 모든 노드에 설치되어야 합니다.
    • Ubuntu에서는 다음 명령어를 실행
      sudo apt-get update
      sudo apt-get install nfs-common
    • Red Hat Enterprise Linux (RHEL)에서는 다음 명령어 실행
      yum install nfs-utils
  • RHEL 시스템을 사용하는 경우 SELinux가 비활성화 되어 있는지 확인하십시오.
  • 시스템 관리자 (admin)으로 로그인 했는지 확인하십시오.
  1. IBM Cloud Private 관리 콘솔에 관리자로 로그인 합니다. (default : admin/admin)
  2. 메뉴에서 플랫폼 > 저장소를 선택합니다.

  3. Create PersistentVolume 을 클릭합니다.
  4. Persistent Volume 세부 정보를 입력하십시오. PV를 생성하려면 다음 Parameter를 입력해야 합니다.
    1. General 탭에서 PV 이름 / PV 크기 / PV 타입 값을 입력합니다.

    2. Parameter 탭에서 NFS 서버 주소 및 경로를 입력합니다.
      (Server : NFS서버의 IP 주소 또는 호스트네임 / Path : 마운트 된 디렉토리의 위치)
    3. Create를 클릭 후 생성된 스토리지의 상태를 확인합니다. 곧 스토리지 (PV)를 사용할 준비가 되었음을 알리는 Available 상태가 됩니다.

[2단계] Persistent Volume Claim 만들기 – PV 사용권 요청

1단계에서 시스템 레벨의 스토리지, 즉 Persistent Volume (PV)을 생성했습니다.
이제 다음으로 만들어진 스토리지 (PV)에 대한 사용권을 요청하는 Persistent Volume Claim (PVC)을 만들도록 하겠습니다.
PVC가 적절히 생생되면 앞의 PV와 Binding이 되어 애플리케이션에서 사용할 준비가 됩니다.

  1. IBM Cloud Private 웹 관리 콘솔에 로그인 합니다.
  2. 메뉴 > Platform > Storage를 선택합니다.
  3. Persistent Volume Claim 탭을 선택합니다.
    1. PVC의 이름과 요청할 저장소 크기를 입력 후 Create를 클릭합니다.
    2. 성공적으로 생성된 PVC는 Pending 상태를 거쳐 Bound 상태가 되면, PV와 PVC가 적절하게 연결 되었음을 확인할 수 있습니다.
    3. 생성된 PVC를 클릭해 상세 내용을 확인합니다.
    4. 다시 PersistentVolume 탭을 클릭해 nginxnfs 스토리지가 Bound되었음을 확인합니다.

여기까지 Kubernetes에서 스토리지를 사용하는 방법인,
PersistentVolume과 PersistentVolumeClaim을 생성해 보았습니다.

다음 포스팅에서는 애플리케이션을 배포하여 생성한 스토리지와 연계하는 작업을 해보도록 하겠습니다.
그럼, 다음 포스팅에서 뵐게요!

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다