본문 바로가기

Kubernetes

[Kubernetes] Persistent Volume V & Persistent Volume Claim

반응형

Kubernetes Volumes 운영 환경 분리

 - 기본 스토리지 운영환경의 분리

  1. 관리자 : 스토리지 구성

  2. 개발자 : 필요한 만큼 요구

 - Persistent Volume V & Persistent Volume Claim

  1. Persistent Volume :데이터를 저장할 볼륨. 볼륨을 생성하고 이를 클러스터에 등록한 것

  2. Persistent Volume V & Persistent Volume Claim : 필요한 저장 공간, RW 모드 등 요청사항을 기술한 명세서로서 PV에

     전달하는 요청. PV와 바인딩을 하는 목적으로 사용

 

 " PV는 관리자에 의해 생성된 볼륨을 뜻하고, PVC는 사용자가 볼륨을 사용하기 위해 PV에 요청을 하게 된다."

https://velog.io/@ynsoo1225/%ED%8D%BC%EC%8B%9C%EC%8A%A4%ED%84%B4%ED%8A%B8-%EB%B3%BC%EB%A5%A8PV%EA%B3%BC-%ED%8D%BC%EC%8B%9C%EC%8A%A4%ED%84%B4%ED%8A%B8-%EB%B3%BC%EB%A5%A8-%ED%81%B4%EB%A0%88%EC%9E%84PVC

 

 

예제는 https://kubernetes.io/docs/concepts/storage/persistent-volumes/ 쿠버네티스 공식 사이트에서 예제 참고해도됨

 

PV(Persistent Volume) 생성

kubectl get persistentvolume
No resources found

cat pv.yaml 
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv1
spec:
  capacity:
    storage: 20Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteMany
  storageClassName: manual
  persistentVolumeReclaimPolicy: Delete
  nfs:
    server: ip
    path: /sharedir/k8s
    
kubectl apply -f pv.yaml
persistentvolume/pv1 created

kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv1    20Gi        RWX            Delete           Available           manual                  15s

 

PVC(Persistent Volume Claim) 생성

cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-web
spec:
  accessModes:
    - ReadWriteMany
  volumeMode: Filesystem
  resources:
    requests:
      storage: 20Gi
  storageClassName: manual
  
kubectl apply -f pvc.yaml
persistentvolumeclaim/pvc-web created

kubectl get pvc
NAME      STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-web   Bound    pv1      20Gi        RWX            manual         11s

kubectl get pv
NAME   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM             STORAGECLASS   REASON   AGE
pv1    20Gi        RWX            Delete           Bound    default/pvc-web   manual                  6m4s

 

어플리케이션 pod에 pv 연결

cat pvc-pod-web.yaml
apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
  - image: nginx:1.14
    name: nginx
    volumeMounts:
    - name: html
      mountPath: /usr/share/nginx/html
  volumes:
  - name: html
    persistentVolumeClaim:
      claimName: pvc-web
      
kubectl apply -f pvc-pod-web.yaml
pod/web created

 

 

[참고]

- 유투브 따배쿠 강의

- https://velog.io/@_zero_/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-PVPVC-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%A0%95

반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] DNS  (0) 2023.02.09
[Kubernetes] Kubernetes Network  (0) 2023.02.02
[kubernetes] Kubernetes 스토리지  (0) 2023.01.30
[Kubernetes] Kubernetes 권한  (0) 2023.01.29
[Kubernetes] Kubernetes 인증  (1) 2023.01.29