- 인쇄
- 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 Version | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23 |
---|---|---|---|---|---|---|
v1.0.x | 지원 | 지원 | 지원 | 지원 | 지원 | 지원 |
v2.0.x | 미지원 | 미지원 | 미지원 | 미지원 | 지원 | 지원 |
Kubernetes 버전에서 지원하는 스토리지 서비스는 다음과 같습니다.
Service\Kubernetes Version | 1.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
입니다.
모드 | 설명 |
---|---|
Immediate | PVC가 생성되는 시점에 동작 |
WaitForFirstConsumer | Pod가 생성되는 시점에 동작 |
reclaimPolicy
: 사용이 끝난 PVC가 삭제될 때 사용 중이던PersistentVolume
을 재확보 또는 삭제하도록 정책을 설정할 수 있습니다. 기본값은Delete
입니다.
정책 | 설명 |
---|---|
Retain | PVC가 삭제될 때 사용 중인 PV는 재사용이 가능한 상태로 변경되며, NAS 볼륨 내부 데이터를 유지 |
Delete | PVC가 삭제될 때 사용 중인 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 예제를 참조해 주십시오.