본문 바로가기

⭐ Kubernetes & EKS/볼륨 스토리지 (Volume Storage)

쿠버네티스 스토리지 & EmptyDir

# 쿠버네티스 스토리지

- 임시볼륨: 컨테이너간 공유위해

- 로컬볼륨: 노드간 공유위해

# EmptyDir을 활용한 컨테이너 간 데이터 공유

- 공유디렉토리 : 볼륨

- 컨테이너별 디렉토리를 볼륨을 통해 공유디렉토리로 활용할 수있음

- emptyDir 볼륨은 파드가 노드에 할당될 때 처음 생성되며, 해당 노드에서 파드가 실행되는 동안에만 존재한다. 이름에서 알 수 있듯이 emptyDir 볼륨은 처음에는 비어있다. 파드 내 모든 컨테이너는 emptyDir 볼륨에서 동일한 파일을 읽고 쓸 수 있지만, 해당 볼륨은 각각의 컨테이너에서 동일하거나 다른 경로에 마운트될 수 있다. 어떤 이유로든 노드에서 파드가 제거되면 emptyDir 의 데이터가 영구적으로 삭제된다.

# EmptyDir 활용 실습

# 관련 내용찾기

쿠버네티스 공식사이트 > 검색 > volumes > 쓰고자하는 볼륨모델 선택 > EmptyDir > 관련소스 복사

vim count-httpd.yaml

- 확인

apiVersion: v1
kind: Pod
metadata:
  name: count
spec:
  containers:
  - image: gasbugs/count
    name: html-generator
    volumeMounts:
    - name: html
      mountPath: /var/htdocs
  - image: httpd
    name: web-server
    volumeMounts:
    - name: html
      mountPath: /usr/local/apache2/htdocs
      readOnly: true
    ports:
    - containerPort: 80
      protocol: TCP
  volumes:
  - name: html
    emptyDir: {}
kubectl create -f count-httpd.yaml

kubectl get pod -w

# 서비스 요청하기

- ip주소확인

kubectl get pod -o wide

# curl 명령을통해 서비스 확인하기

kubectl exec -it --curl 10.108.2.38

# http-go 서비스 실행하기

kubectl create deploy http-go --image=may9noy/http-go

kubectl exec -it http-go-587945f5c4-vf7nx -- curl 10.108.2.38