개인 프로젝트

[K8S] emptyDir 공유 볼륨 사용하기

2023. 8. 17. 11:52

EmptyDir 볼륨

출처: https://junior-developer.tistory.com/55

emptyDir은 컨테이너 간에 공유 볼륨을 사용하고자 할 때 사용된다.

이때 생성되는 공유 볼륨은 파드 안에 생성되기 때문에 파드가 삭제될 때 함께 삭제된다. (즉, 파드 재생성시 데이터도 날라가게 된다.)

만약 파드간에 공유 볼륨을 사용하고자 한다면, persistent volume(PV)(NFS, 클라우드 스토리지 볼륨 등)을 사용하는것이 좋다.

PV는 영구볼륨으로 파드가 삭제되어도 계속 남아있기 때문이다.

 

먼저 파드 템플릿은 다음과 같이 작성한다.

apiVersion: v1
kind: Pod
metadata:
  name: pod-volume-1
spec:
  containers:
  - name: container1
    image: kubetm/init
    volumeMounts:
    - name: empty-dir
      mountPath: /mount1
  - name: container2
    image: kubetm/init
    volumeMounts:
    - name: empty-dir
      mountPath: /mount2
  volumes:
  - name : empty-dir
    emptyDir: {}
파드 이름: pod-volume-1

컨테이너 1
컨테이너 이름: container1
사용할 볼륨 이름: empty-dir
볼륨을 붙일 경로: /mount1

컨테이너 2
컨테이너 이름: container2
사용할 볼륨 이름: empty-dir
볼륨을 붙일 경로: /mount2

볼륨
볼륨 이름: empty-dir
볼륨 유형: emptyDir


EmptyDir 적용해보기

1. 위의 파드템플릿으로 pod-volume-1 파드를 생성한다.

 

2. 파드의 container1과 container2에 각각 접속한다.

container1
container2

container1에는 mount1이, container2에는 mount2가 생성되어있는 것을 볼 수 있다.

 

3. container1의 mount1에 temp파일을 생성한다.

container1 - mount1

 

4.  container2의 mount2를 확인해보면 temp파일이 생성된 것을 확인할 수 있다.

container2 - mount2

두 컨테이너가 하나의 공유 볼륨인 emptyDir을 바라보고 있는것을 확인할 수 있다!