emptyDir은
Pod 내의 Container 간의 볼륨 마운트를 위한 오브젝트이다.
주의할 점은,
Pod와 Lifecycle이 같기 때문에 Pod가 삭제되면 같이 삭제되니만,
emptyDir로 sideCar나 앰버서더 와 같은 다양한 디자인패턴을 구현할 수 있다.
non-persistent volume이라고도 한다.
vi emptyDir.yaml 으로 yaml 파일 생성한다.
아래 readonly 옵션으로 권한도 제어할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: pod-vol1
labels:
app: test
spec:
containers:
- image: dbgurum/k8s-lab:initial
name: container1
volumeMounts:
- name: empty-dir
mountPath: /mount1
- image: dbgurum/k8s-lab:initial
name: container2
volumeMounts:
- name: empty-dir
mountPath: /mount2
readOnly: true
volumes:
- name: empty-dir
emptyDir: {}
:wq로 저장하고 나온다.
kubectl exec -it pod-vol1 -c container1 -- bash
[root@pod-vol1 /]# mount | grep /mount1 /dev/sda1 on /mount1 type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
[root@pod-vol1 /]# cd /mount1/
[root@pod-vol1 mount1]# echo "i love k8s~" >> k8s.txt
[root@pod-vol1 mount1]# ls k8s.txt
[root@pod-vol1 mount1]# cat k8s.txt
i love k8s~
[root@pod-vol1 mount1]# exit
exit
kubectl exec -it pod-vol1 -c container2 -- bash
[root@pod-vol1 /]# cd mount2/
[root@pod-vol1 mount2]# ls
k8s.txt
[root@pod-vol1 mount2]# cat k8s.txt
i love k8s~
[root@pod-vol1 mount2]# mount | grep /mount2
/dev/sda1 on /mount2 type xfs (ro,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
readonly 옵션을 줬기 때문에 아래처럼 파일을 수정하지 못한다.
[root@pod-vol1 mount2]# echo "me too~" >> k8s.txt
bash: k8s.txt: Read-only file system
[root@pod-vol1 mount2]# exit
exit
command terminated with exit code 1
kubectl cp pod-vol1:mount1/k8s.txt -c container1 k8s.txt
ls
emptydir.yaml k8s.txt
'Cloud > Kubernetes' 카테고리의 다른 글
SealedSecret 소개 및 사용 (0) | 2024.05.27 |
---|---|
Kubernetes Volume - emptyDir로 sideCar 디자인패턴 구현하기 ( logstash -> elasticsearch) (0) | 2024.04.17 |
kubernetes(k8s) 인증서 있는 대시보드 생성 (0) | 2024.04.11 |