본문 바로가기

⭐ Kubernetes & EKS/PV & PVC

PV와 PVC의 개념 및 실습

# pv와 pvc에 대한 개념

- PersistentVolume(PV), PersistentVolumeClaim(PVC)

- 인프라 세부 사항을 알지 못해도 클러스터의 스토리지를 사용할 수 있도록 제공해주는 리소스

# 개념도

# PV, PVC 실습

# 이전에 생성했던 gce-mongodb-pod.yaml 파일을 재사용

cp gce-mongodb-pod.yaml mongo-pv-pvc-pod.yaml

vim mongo-pv-pvc-pod.yaml

쿠버네티스 공식사이트 > volumes > persistentVolumeClaim >  kind: > 코드복사 > pvc도 동일하게 kind: 로 검색하여 복사 > volumes 도 검색해서 복사 yaml파일에 붙여넣기

apiVersion: v1
kind: Pod
metadata:
  name: mongodb
spec:
  containers:
  - image: mongo
    name: mongodb
    volumeMounts:
    - mountPath: /data/db
      name: mongodb
  volumes:
  - name: mongodb
    persistentVolumeClaim:
      claimName: mongo-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongo-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: ""
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mongo-pv
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  - ReadOnlyMany
  persistentVolumeReclaimPolicy: Retain
  gcePersistentDisk:
    pdName: mongodb
    fsType: ext4
kubectl create -f mongo-pv-pvc-pod.yaml

- 존재한다고 나올경우

kubectl delete -f mongo-pv-pvc-pod.yaml

kubectl create -f mongo-pv-pvc-pod.yaml

# 생성한 pv 확인하기

kubectl get pv

kubectl get pvc

- 상태에서 bound가 표시되어 있으면, 정상적으로 연결이 되었다고 볼 수 있다.

kubectl get pod

# 몽고db 서비스에서 데이터 조회하기

kubectl exec -it mongodb -- mongo

> use mystore

> db.foo.find()

- 정상적으로 조회되면 디스크를 잘 연결했다고 볼 수 있다.

'⭐ Kubernetes & EKS > PV & PVC' 카테고리의 다른 글

PV, PVC를 이용한 EBS 볼륨 사용하기  (2) 2023.07.13