본문 바로가기
MLOps/Doker & Kubernetes

Udemy CKA 강의 정리 186: Persistent Volumes

by 공부하는 무니 2023. 1. 22.
반응형

해당 내용은 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 공부한 내용입니다. 내용을 그대로 번역하기보다는, 제가 이해하기 쉬운 대로 수정한 부분들이 있습니다.

⚠️ 영어 독해가 많이 부족합니다. 틀린 내용이 있으면 알려주시면 감사하겠습니다.


지난 강의에서 우리는 volume에 대해 배웠습니다. 이제 Kubernetes의 persistent volume에 대해 설명하겠습니다. 이전 섹션에서 볼륨을 생성할 때 파드 definition 파일 내에서 볼륨을 구성했으므로 볼륨에 대한 스토리지를 구성하는 데 필요한 모든 configuration 정보는 파드 definition 파일 내에 있습니다.

유저가 많고, 많은 파드를 배포하는 대규모 환경의 경우에는 각 파드에 대해 매번 스토리지를 구성해야 합니다. 어떤 스토리지 솔루션을 사용하든 파드를 배포하는 사용자는 자신의 환경에 있는 모든 파드 definition 파일에서 이를 구성해야 합니다. 변경 사항이 있을 때마다 사용자는 자신의 모든 파드에 변경 사항을 적용해야 합니다. 따라서 스토리지를 보다 중앙에서 관리하고 싶을 것입니다. 관리자가 대규모 스토리지 풀을 생성한 다음 사용자가 필요에 따라 풀을 분할하도록 구성할 수 있습니다. 이것이 persistent volume이 나타난 이유입니다.

persistent volume은 클러스터에 애플리케이션을 배포하는 사용자가 사용하도록 관리자가 구성한 cluster-wide 스토리지 볼륨 풀입니다. 이제 사용자는 persistent volume claims을 사용하여 이 풀에서 스토리지를 선택할 수 있습니다.

이제 persistent volume을 생성해 보겠습니다. default 템플릿으로 시작합니다.

pv-definition.yaml

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-vol1
spec:
  accessModes: [ "ReadWriteOnce" ]
  capacity:
   storage: 1Gi
  hostPath:
   path: /tmp/data

API 버전을 업데이트합니다.

kind를 persistent volume으로 설정하고

metadata>name을 pv-vol1로 지정합니다.

spec 섹션에서 accessModes를 지정합니다. 액세스 모드는 읽기 전용 모드인지 읽기/쓰기 모드인지 등 호스트에 볼륨을 마운트하는 방법을 정의합니다. 지원되는 값은 ReadOnlyMany, ReadWriteOnce, ReadWriteMany 모드입니다. 다음은 storage입니다. 이 persistent volume에 대해 스케쥴링할 스토리지 양을 지정합니다. 여기서는 1GB로 설정됩니다. 다음은 볼륨 유형입니다. 노드의 로컬 디렉토리에서 저장소를 사용하는 hostPath 옵션부터 시작하겠습니다. 이 옵션은 프로덕션 환경에서 사용되지 않습니다.

$ kubectl create -f pv-definition.yaml
persistentvolume/pv-vol1 created

$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv-vol1   1Gi        RWO            Retain           Available                                   3min

$ kubectl delete pv pv-vol1
persistentvolume "pv-vol1" deleted

볼륨을 생성하려면 kubectl create 커맨드를 실행하고, 생성된 볼륨을 나열하려면 kubectl get permanent volume 커맨드를 실행합니다.

AWS Elastic Block Store 등과 같이 이전 강의에서 본 것처럼 hostPath 옵션을 지원되는 스토리지 솔루션 중 하나로 교체하십시오. 

반응형

댓글