[Kubernetes] 쿠버네티스 볼륨(Volume) - emptyDir
안녕하세요, 달콤한달팽이입니다.🐌🙂
지난 시간에는 쿠버네티스에서 주로 사용하는 볼륨의 종류와 특징에 대하여 알아보았습니다.
오늘은 이 중 emptyDir라는 볼륨에 대하여 실습해보도록 하겠습니다.
emptyDir란?
실습에 앞서 emptyDir란, Pod가 생성될 때 같이 생성되고, 삭제될 때 같이 삭제되는 임시 볼륨을 의미한다라고 했습니다.
때문에 이를 영구 스토리지로 사용하는 것 보다, 아래와 같은 특정 상황에서 사용하는 것을 권장드립니다.
(1) Pod의 임시 데이터 저장이 필요할 경우
(2) 컨테이너 간 데이터를 공유해야 할 경우
(3)스토리지를 통한 성능 최적화가 필요할 경우
이번 실습에서는 하나의 Pod에 2개의 컨테이너를 생성한 후,
하나의 컨테이너에서는 emptyDir에 파일 생성을, 다른 컨테이너에서는 emptyDir에 생성된 파일을 확인 해보겠습니다.
emptyDir 실습
우선, Redis와 Nginx라는 2개의 컨테이너가 포함된 하나의 Pod를 생성해주세요.
(yaml파일은 아래를 참고해주세요!)
apiVersion: v1
kind: Pod
metadata:
name: shared-volumes
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: emptydir
mountPath: /shared
- name: nginx
image: nginx
volumeMounts:
- name: emptydir
mountPath: /shared
volumes:
- name: emptydir
emptyDir: {}
정상적으로 생성되었는지 Pod의 목록을 확인해주도록 합시다.
$ kubectl get pods -A
이제 Pod의 컨테이너 중 하나인 Redis 컨테이너의 공유폴더 경로(/shared)에 들어가 테스트 파일을 하나 생성해주세요.
$ kubectl exec -it shared-volumes --container redis -- /bin/bash
... 컨테이너 내부 ...
$ cd /shared/
$ ls -al
$ echo testtest > test_file.txt
$ ls -al
$ exit
이후 Pod의 또 다른 컨테이너 중 하나인 Nginx 컨테이너의 공유폴더 경로(/shared)에 들어가 파일 목록을 확인해주세요.
$ kubectl exec -it shared-volumes --container nginx -- /bin/bash
... 컨테이너 내부 ...
$ cd /shared
$ ls -al
$ exit
redis 컨테이너에서 생성한 /shared/test_file.txt가 nginx 컨테이너에서도 확인이 가능한 것을 알아보았습니다.
지금까지 emptyDir 볼륨을 사용하여 Pod간의 볼륨 공유 방법에 대하여 알아보았습니다.
감사합니다!