Kubernetes 스토리지 배포, 확장, 모니터링

Kubernetes 소개

Frank Heilmann

Platform Architect and Freelance Instructor

PersistentVolume과 PersistentVolumeClaim

Persistent Volumes 및 Persistent Volume Claims

  • 스토리지의 기본 객체: PersistentVolume(PV) — Pod와 분리되어 유지
  • PV는 PersistentVolumeClaim(PVC)으로 Pod에 매핑됩니다
  • 매핑된 PV는 Pod가 중지·종료·재시작되어도 데이터를 보존합니다
  • PV는 스토리지와 컴퓨트를 분리합니다
Kubernetes 소개

StorageClass

StorageClass

  • PV 프로비저닝 방법:
    • Kubernetes 관리자 수동 프로비저닝
    • 일반 사용자의 동적 프로비저닝
  • 동적 프로비저닝은 StorageClass(SC)로 사람 개입 없이 수행됩니다
  • StorageClass(SC):

    • Kubernetes 관리자가 정의
    • 유형 다양(예: 지연 시간 SSD vs HDD, 백업 전략 등)
  • 고민되면 StorageClass를 사용하십시오 ;-)

Kubernetes 소개

모두 연결해 보기

  • 스토리지에 필요한 객체는 세 가지뿐입니다:

    • PersistentVolume
    • PersistentVolumeClaim
    • StorageClass
  • 지속 데이터가 필요한 Pod는 PersistentVolumeClaim을 사용합니다

  • PVC가 해당 Pod를 위해 PersistentVolume 생성을 트리거합니다
  • 생성된 PersistentVolume이 해당 Pod에 매핑됩니다
  • 지연 시간, 백업 전략 등을 정의하는 지정된 StorageClass를 사용합니다
  • PersistentVolumePod가 종료되어도(데이터와 함께) 유지됩니다
Kubernetes 소개

매니페스트 스니펫

PersistentVolume이 있는 Pod

apiVersion: v1
kind: Pod
...

spec: containers: ... volumeMounts: - name: pv-mydata mountPath: /mydata
volumes: - name: pv-mydata persistentVolumeClaim: claimName: datacamp-pvc

StorageClass가 있는 PersistentVolumeClaim

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: datacamp-pvc

spec: storageClassName: "standard" accessModes: - ReadWriteOnce
resources: requests: storage: 5Gi
Kubernetes 소개

스토리지를 위한 "kubectl" 명령

  • kubectl은 Kubernetes 스토리지를 생성·모니터링하는 전체 명령을 제공합니다
  • 예시:
    • kubectl get sc: 모든 StorageClass 목록
    • kubectl get pvc: 배포된 모든 PersistentVolumeClaim 목록
    • kubectl get pv: 배포된 모든 PersistentVolume 목록
    • 일반적으로 kubectl apply -f <manifest>로 매니페스트에 선언된 스토리지 리소스를 배포할 수 있습니다.
Kubernetes 소개

연습해 봅시다!

Kubernetes 소개

Preparing Video For Download...