NAS 볼륨 CSI
    • PDF

    NAS 볼륨 CSI

    • PDF

    기사 요약

    VPC 환경에서 이용 가능합니다.

    구동 중인 컨테이너에 파일을 새로 추가할 경우, 해당 파일들은 프로세스가 종료되거나 Kubernetes Liveness Probe의 상태 체크에 실패하여 컨테이너가 재시작될 때 모두 삭제됩니다. 이 때 NAS 볼륨을 사용하여 새로 추가된 파일들이 프로세스 종료 또는 컨테이너 재시작 후에도 유지되도록 설정할 수 있습니다.

    Kubernetes NAS 볼륨 컨테이너를 배포할 때 PersistentVolumeClaim(PVC)를 생성하여 추가할 수 있습니다.

    네이버 클라우드 플랫폼의 Ncloud Kubernetes Service는 볼륨 드라이버로 Container Storage Interface(CSI)를 제공합니다. 이 드라이버는 Kubernetes와 연동되어 NAS 볼륨 생성, 삭제, 리사이징 등의 작업을 지원합니다.

    지원되는 버전 및 용량

    지원되는 버전

    네이버 클라우드 플랫폼에서 제공하는 NAS CSI 버전과 호환 Kubernetes 버전은 다음과 같습니다.

    Ncloud NAS CSI Driver\Kubernetes Version1.181.191.201.211.221.23
    v1.0.x지원지원지원지원지원지원
    v2.0.x미지원미지원미지원미지원지원지원

    Kubernetes 버전에서 지원하는 스토리지 서비스는 다음과 같습니다.

    Service\Kubernetes Version1.18+
    볼륨 생성지원
    볼륨 삭제지원
    볼륨 확장(리사이즈)지원
    서버에 볼륨 할당지원
    서버에 볼륨 해제지원
    스냅샷 생성미지원
    스냅샷 삭제미지원

    할당 가능한 용량

    Kubernetes NAS 볼륨은 CSI를 통해 100 GB 단위로 용량을 할당할 수 있습니다. 볼륨 크기를 별도로 정의하지 않는 경우 기본값인 100 GB로 NAS 볼륨이 생성됩니다. 할당 가능한 최소 용량과 최대 용량은 다음과 같습니다.

    • 최소: 100 GB
    • 최대: 10,000 GB

    NAS CSI 드라이버 설치 (기존 미설치 클러스터용)

    NAS CSI 드라이버는 Kubernetes가 설치될 때 기본으로 배포됩니다. 이 절은 기존 미설치 클러스터에서 NAS CSI를 설치하는 방법을 설명합니다. NAS CSI가 이미 설치되어 있는 경우에는 아래의 작업을 수행하지 않아도 됩니다.

    NAS CSI Driver 배포

    아래 파일들은 최신의 안정 버전을 가리킵니다. 설치 과정 중 문제가 생긴 경우 kubectl apply -f 명령을 다시 실행하여 누락된 리소스가 다시 반영되도록 합니다.

    • 수도권 리전
    # kubernetes version >= 1.22
    $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/gov/kr/v2.0.2/nas-csi.yaml
    # kubernetes version < 1.22
    $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/gov/kr/v1.0.2/nas-csi.yaml
    
    • 남부권 리전
    # kubernetes version >= 1.22
    $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/gov/krs/v2.0.2/nas-csi.yaml
    # kubernetes version < 1.22
    $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/gov/krs/v1.0.2/nas-csi.yaml
    

    NAS CSI 드라이버 상세 사항

    StorageClass

    StorageClass는 각 스토리지의 정책과 타입을 설정한 오브젝트입니다. 네이버 클라우드 플랫폼에서는 NAS 볼륨을 사용하는 StorageClass를 제공합니다.
    NAS 볼륨의 StorageClass 오브젝트를 확인하려면 nks-nas-csi 이름을 가진 오브젝트를 확인해 주십시오. 아래와 같이 표시됩니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: nks-nas-csi
    mountOptions:
    - hard
    - nolock
    - nfsvers=3
    provisioner: nas.csi.ncloud.com
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    
    • volumeBindingMode: 볼륨 바인딩과 동적 프로비저닝이 동작하는 시점을 설정할 수 있습니다. 기본값은 Immediate입니다.
    모드설명
    ImmediatePVC가 생성되는 시점에 동작
    WaitForFirstConsumerPod가 생성되는 시점에 동작
    • reclaimPolicy: 사용이 끝난 PVC가 삭제될 때 사용 중이던 PersistentVolume을 재확보 또는 삭제하도록 정책을 설정할 수 있습니다. 기본값은 Delete입니다.
    정책설명
    RetainPVC가 삭제될 때 사용 중인 PV는 재사용이 가능한 상태로 변경되며, NAS 볼륨 내부 데이터를 유지
    DeletePVC가 삭제될 때 사용 중인 PV를 함께 삭제하며, NAS 볼륨 반납
    • allowVolumeExpansion: 값을 true로 설정하여 PersistentVolumeClaim을 확장할 수 있습니다.
    참고

    Retain 정책을 통해 재확보한 NAS 볼륨은 네이버 클라우드 플랫폼 콘솔이나 API를 통해 반납할 수 있습니다.

    Default Storage Class 변경

    생성된 StorageClass 오브젝트의 기본 Storage Class 내용을 변경하려면 Changing the default StorageClass를 참조해 주십시오.

    CSI Controller

    CSI Controller는 볼륨의 생성, 삭제, 할당, 할당 해제, 스냅샷 등 각종 제어와 관리를 담당하는 인터페이스입니다.

    NAS CSI Controller를 확인하려면 아래 명령어를 통해 Namespace kube-system 내의 Deployment 오브젝트를 확인해 주십시오.

    $ kubectl --kubeconfig $KUBE_CONFIG get deployment -n kube-system
    

    CSI Node

    CSI 노드는 Kubernetes의 워커 노드마다 하나씩 동작하는 노드로, 볼륨의 포맷, 마운트, 언마운트 등의 동작을 담당합니다.

    NAS CSI Node를 확인하려면 아래 명령어를 통해 Namespace kube-system 내의 DaemonSet 리소스를 확인해 주십시오.

    $ kubectl --kubeconfig $KUBE_CONFIG get daemonset -n kube-system
    

    NAS-CSI 드라이버 사용

    NAS-CSI 드라이버 사용에 대한 자세한 예제는 NAS 볼륨 CSI 예제를 참조해 주십시오.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.