RedHat OpenShift 플랫폼 사용하기 - 스토리지

이eun·2025년 3월 10일

Red Hat OpenShift의 스토리지(Storage) 개념

OpenShift는 컨테이너 기반 플랫폼이므로, 기본적으로 컨테이너 내부에서 생성된 데이터는 휘발성(Volatile)이야.
따라서, 데이터가 유지되어야 하는 경우에는 Persistent Storage(영구 스토리지)를 사용해야 해.


1. OpenShift 스토리지 유형

OpenShift의 스토리지는 크게 Ephemeral(임시) 스토리지Persistent(영구) 스토리지로 나눌 수 있어.

스토리지 유형설명
Ephemeral Storage (임시 스토리지)Pod가 삭제되면 데이터도 함께 사라짐 (예: EmptyDir, Container Local Storage)
Persistent Storage (영구 스토리지)Pod가 삭제되어도 데이터가 유지됨 (예: Persistent Volume, PVC, RWX, RWO)

📌 어떤 경우에 Persistent Storage를 사용해야 할까?

  • 데이터베이스 (MySQL, PostgreSQL, MongoDB 등)
  • 로그 저장
  • 파일 공유 시스템

2. OpenShift 스토리지 리소스 개념

OpenShift에서 영구 스토리지를 사용하려면 Persistent Volume (PV)와 Persistent Volume Claim (PVC) 개념을 이해해야 해.

(1) Persistent Volume (PV)

  • 클러스터 관리자가 미리 정의한 스토리지 리소스
  • NFS, Ceph, GlusterFS, AWS EBS, GCP PD 등 다양한 스토리지 백엔드 지원
  • 시스템에서 직접 생성 및 관리

📌 PV 목록 확인

oc get pv

(2) Persistent Volume Claim (PVC)

  • 개발자가 특정한 스토리지를 요청할 때 사용하는 리소스
  • PVPVC가 매칭되면 Pod에서 스토리지를 사용할 수 있음

📌 PVC 목록 확인

oc get pvc

(3) StorageClass (SC)

  • 동적 볼륨 프로비저닝(Dynamic Provisioning)을 가능하게 하는 설정
  • 관리자가 미리 정의한 스토리지 정책
  • AWS, GCP, NFS 등 다양한 스토리지 백엔드에 맞춰 설정 가능

📌 StorageClass 목록 확인

oc get storageclass

📌 StorageClass를 사용하여 PVC 생성

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-storage
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: standard

📌 PVC가 정상적으로 바인딩되었는지 확인

oc get pvc

3. 스토리지 접근 방식 (Access Modes)

Persistent Volume(PV)을 사용할 때, 스토리지가 어떤 방식으로 접근할 수 있는지를 설정해야 해.

접근 방식설명
ReadWriteOnce (RWO)하나의 Pod에서만 읽기/쓰기가 가능
ReadOnlyMany (ROX)여러 Pod에서 읽기만 가능
ReadWriteMany (RWX)여러 Pod에서 동시에 읽기/쓰기 가능

📌 PVC 생성 시 Access Mode 확인

oc get pvc my-storage -o yaml

4. OpenShift에서 사용 가능한 스토리지 백엔드

OpenShift는 다양한 스토리지 백엔드를 지원해.

스토리지 유형설명
NFS (Network File System)여러 Pod에서 공유 가능 (RWX 지원)
CephFS분산 파일 시스템, 고가용성 지원
GlusterFS스케일아웃 파일 시스템, RWX 지원
AWS EBS (Elastic Block Store)AWS 전용, RWO 지원
GCP Persistent DiskGoogle Cloud 전용, RWO 지원
Azure Disk / Azure FileMicrosoft Azure 전용 스토리지

📌 스토리지 백엔드 확인

oc get storageclass

5. Pod에서 스토리지 마운트 예제

PVC를 Pod에 마운트하여 사용하는 방법을 예제로 보여줄게.

📌 PVC를 사용하는 Pod 예제

apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-container
    image: nginx
    volumeMounts:
    - mountPath: "/data"
      name: my-storage
  volumes:
  - name: my-storage
    persistentVolumeClaim:
      claimName: my-storage

👉 위 설정에서는 my-storage라는 PVC를 Pod의 /data 디렉토리에 마운트했어.
👉 이렇게 하면 Pod가 재시작되거나 이동해도 데이터가 유지됨.


📌 정리

  1. 임시 스토리지(Ephemeral Storage) vs 영구 스토리지(Persistent Storage)
  2. Persistent Volume(PV): 클러스터 관리자가 설정한 스토리지
  3. Persistent Volume Claim(PVC): 개발자가 요청하는 스토리지
  4. StorageClass(SC): 동적 프로비저닝을 위한 스토리지 정책
  5. Access Mode: RWO, ROX, RWX를 통해 스토리지 접근 방식 설정
  6. 스토리지 백엔드: NFS, Ceph, GlusterFS, AWS EBS, GCP PD 등 지원
  7. Pod에서 PVC 마운트하여 사용 가능

이제 OpenShift 스토리지가 어떻게 동작하는지 알겠지? 😊
더 궁금한 점 있으면 질문해줘! 🚀

0개의 댓글