본문 바로가기
Kubernetes

[k8s] hostPath와 emptyDir의 차이점

by Nhahan 2024. 6. 10.

hostPath: Node 단위의 데이터 공유

hostPath는 Kubernetes 노드의 파일 시스템에 있는 특정 경로를 Pod에 마운트하는 볼륨 타입이다.

  • 노드 의존적: hostPath 볼륨은 Pod이 실행되는 특정 노드의 파일 시스템 경로에 접근한다. 따라서 다른 노드에서는 동일한 경로에 접근할 수 없다.
  • 데이터 지속성: Pod이 재시작되거나 다시 스케줄링되어도 동일한 노드에서 실행된다면 데이터는 그대로 유지된다. 하지만 다른 노드로 스케줄링될 경우 데이터에 접근할 수 없다.
apiVersion: v1
kind: Pod
metadata:
  name: hostpath-example
spec:
  containers:
  - name: test-container
    image: busybox
    volumeMounts:
    - mountPath: /test-hostpath
      name: test-volume
  volumes:
  - name: test-volume
    hostPath:
      path: /data
      type: Directory

 


 

emptyDir: Pod 단위의 데이터 공유

emptyDir는 Pod가 생성될 때 빈 디렉토리를 제공하는 볼륨 타입이다.

  • Pod 내에서만 데이터 공유: emptyDir 볼륨은 동일한 Pod 내의 컨테이너들 간에 데이터를 공유할 수 있다. Pod이 삭제되면 데이터도 함께 삭제된다.
  • 데이터 지속성 없음: Pod이 삭제되거나 재시작되면 emptyDir 볼륨의 데이터는 사라진다.
apiVersion: v1
kind: Pod
metadata:
  name: emptydir-example
spec:
  containers:
  - name: test-container
    image: busybox
    volumeMounts:
    - mountPath: /test-emptydir
      name: test-volume
  volumes:
  - name: test-volume
    emptyDir: {}

 

 

 

 

 

둘 다 굉장히 제한된 사용환경을 갖고 있다보니 사용하는 경우는 잘 없다.

Pod 이하 단위에서 상태를 잘 갖지 않기 때문에 마치 백엔드를 stateless하게 개발하는 것과 비슷.

 

'Kubernetes' 카테고리의 다른 글

[k8s] Kubernetes Architecture  (0) 2024.07.08
[k8s] 쿠버네티스를 위한 yaml 유효성 검사 세팅  (0) 2024.06.11
[k8s] 마스터, 워커  (0) 2023.04.12
Kubernetes Overview  (0) 2023.04.07
[k8s] 운영상 관점에서의 VM과 container.  (0) 2023.04.05

댓글