Volume

Yu Sang Min·2025년 6월 23일

CKA

목록 보기
69/110
post-thumbnail

📦 Kubernetes Volumes vs Persistent Volumes


1️⃣ Docker Volumes 요약

  • Docker 컨테이너는 휘발성(transient) → 컨테이너가 삭제되면 내부 데이터도 삭제됨
  • 데이터를 영속적(persistent) 으로 저장하려면 Volume을 컨테이너에 마운트
  • 이 Volume은 컨테이너가 죽어도 데이터를 보존함

2️⃣ Kubernetes에서도 Pod는 휘발성

  • Pod가 종료되면 안에 있던 데이터도 사라짐

  • 이를 해결하려면 Pod에 Volume을 마운트

  • 예시:

    • /opt/number.out 파일에 숫자를 저장
    • Pod가 죽으면 이 파일도 사라짐
    • → 해결: hostPath 타입 Volume을 생성해서 /data 경로를 연결

3️⃣ Volume 구현 예제 요약

volumes:
  - name: data-volume
    hostPath:
      path: /data
      type: Directory

volumeMounts:
  - name: data-volume
    mountPath: /opt
  • Pod 내부 /opt 디렉토리는 실제로 노드의 /data 디렉토리와 연결
  • Pod가 삭제되더라도 /data/number.out은 노드에 남아 있음

4️⃣ hostPath 문제점

  • 단일 노드에서는 작동하지만 다중 노드 환경에서는 부적합

    • 왜냐하면 /data 경로가 모든 노드에 있지만, 서로 다른 물리 저장소이기 때문
    • → 데이터 정합성 깨짐

5️⃣ 다양한 Kubernetes 지원 Storage 유형들

Kubernetes는 다양한 스토리지를 Volume으로 연결할 수 있게 해줌:

분류스토리지 예시
네트워크 스토리지NFS, GlusterFS, CephFS, iSCSI
클러스터 스토리지ScaleIO, Flocker
클라우드 스토리지AWS EBS, GCP PD, Azure Disk/File
전통 스토리지Fibre Channel, Local SSD

📌 예: AWS EBS 설정

volumes:
  - name: data-volume
    awsElasticBlockStore:
      volumeID: vol-abc123
      fsType: ext4

🔄 요약 정리

개념설명
VolumePod에 붙이는 데이터 저장소, Pod 삭제 후에도 존재 가능
hostPath노드 로컬 디스크를 Volume으로 사용
문제점멀티 노드 클러스터에서는 데이터 불일치 가능성
대안외부 스토리지 (EBS, NFS 등) 또는 PersistentVolume 사용
다음 주제Persistent Volume → 스토리지 관리 추상화
profile
React, Node.js, AWS, Git, Github, Github Action, Docker, K8S

0개의 댓글