Kubernetes/KoudKloud - CKAD with Tests

Storage Class 관련 명령어

비번변경 2021. 12. 18. 21:14

PV와 PVC를 이용하면 퍼시스턴트 스토리지를 쉽게 사용할 수 있지만 클러스터 관리자가 실제 스토리지를 프로비저닝해두어야 한다는 불편함이 있다. 

쿠버네티스는 이 작업을 자동으로 수행할 수 있도록 PV 동적 프로비저닝(Dynamic Provisioning)을 지원하여, PV 프로비저너를 배포하고 사용자가 선택 가능한 PV 타입을 정의하는 스토리지 클래스(SC, Storage Class) 객체를 기반으로 지원한다.

 

이 글에서는 Storage Class 목록을 확인하고, 생성하는 명령어를 정리해둔다.

 

Storage Class 목록 확인

get 명령을 이용해 Storage Class의 목록을 확인할 수 있다.

kubectl get storageclasses.storage.k8s.io

kubectl get storageclasses.storage.k8s.io

 

Storage Class 상세 정보 확인

describe 명령을 이용해 이름, 프로비저너, 매개변수, ReclaimPolicy 등의 상세 정보를 확인할 수 있다.

kubectl describe storageclasses.storage.k8s.io <NAME>

# 예시
kubectl describe storageclasses.storage.k8s.io local-storage

Storage Class 상세 정보 확인

프로비저너

PV 프로비저닝을 위해 사용되는 볼륨 플러그인

 

볼륨 바인딩 모드

볼륨 바인딩과 동적 프로비저닝의 시작 시기를 제어하며, 기본값은 Immediate이다.

  • Immediate : 퍼시스턴트볼륨클레임이 생성되면 볼륨 바인딩과 동적 프로비저닝이 즉시 발생
  • WaitForFirstConsumer : 퍼시스턴트볼륨클레임을 사용하는 파드가 생성될 때까지 퍼시스턴트볼륨의 바인딩과 프로비저닝을 지연시킴

 

Storage Class 생성

정의 yaml 파일을 작성하여 생성한다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: delayed-volume-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

 

+ 참고
PV는 storageClassName 속성을 지정할 수 있다.
특정 클래스의 PV는 해당 클래스를 요청하는 PVC에만 바인딩된다.
storageClassName이 없는 PV는 특정 클래스를 요청하지 않는 PVC에만 바인딩된다.

 

Storage Class 삭제

delete 명령을 사용하여 생성한 Storage Class를 삭제할 수 있다.

kubectl delete storageclasses.storage.k8s.io <NAME>

 


참고 문서

https://blog.eunsukim.me/posts/kubernetes-volume-overview

https://kubernetes.io/ko/docs/concepts/storage/storage-classes/

 

스토리지 클래스

이 문서는 쿠버네티스의 스토리지클래스의 개념을 설명한다. 볼륨과 퍼시스턴트 볼륨에 익숙해지는 것을 권장한다. 소개 스토리지클래스는 관리자가 제공하는 스토리지의 "classes"를 설명할 수

kubernetes.io

2021.12.16 - Volume 관련 명령어