본문 바로가기

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

GCE 디스크를 활용한 네트워크 볼륨 연결

# GCE 디스크를 활용한 네트워크 볼륨 연결

- 구글클라우드 볼륨을 사용하기

kubectl get pod

gcloud compute disks create  --size=10GiB --zone=asia-northeast3-a mongodb

- Compute Engine 에서 디스크에서도 확인이 가능하다.

# 생성한 볼륨을 사용하기

- 쿠버네티스 공식 사이트 > 검색> gce > gecPersistentDisk > 예제 코드 복사 후 수정

apiVersion: v1
kind: Pod
metadata:
  name: mongodb
spec:
  containers:
  - image: mongo
    name: mongodb
    volumeMounts:
    - mountPath: /data/db
      name: mongodb
  volumes:
  - name: mongodb
    gcePersistentDisk:
      pdName: mongodb
      fsType: ext4
cd yaml

vim gce-mongodb-pod.yaml

kubectl create -f gce-mongodb-pod.yaml

kubectl get pod -w

- 1분이상 지속될경우 dscribe로 어떤 오류가 있는지 확인 해야함

kubectl describe pod mongodb

# 몽고db 입출력 하기

- monggodb 라는 컨테이너에 mongo 라는 프로그램이 존재

kubectl exec -it mongodb -- mongo

- 쉘이 하나 떨어진다. 이 쉘 이 mongodb를 컨트롤 할 수 있는 쉘 이다.

- 데이터베이스 바꾸기

use mystore

- 데이터 넣기

db.foo.insert ({name:'test',value:'1234'})

- 데이터 조회

db.foo.find ({name:'test',value:'1234'})

db.foo.find ()
kubectl get pod

# pod 삭제

kubectl delete pod mongodb

- 삭제를 하면 할당받은 컴퓨티 > 디스크에서도 할당내역이 삭제되는것을 볼 수 있다.

- 다시 생성하여 체크해보자

kubectl create -f gce-mongodb-pod.yaml

# 재연결 후 mongodb에 접근하여 데이터를 조회해보자

kubectl exec -it mongodb -- mongo

db.foo.find ()

- 이전에 넣었던 데이터가 여전히 조회되는것을 확인 할 수있다.