pv , pvc 생성 및 볼륨마운트

이번 글에서는 가상화 머신에 마운트한 디스크 이미지에 쿠버네티스를 이용하여 퍼시스턴트 볼륨과 퍼시스턴트 볼륨 클래임 설정을하고 컨테이너에 연결해 컨테이너 내에서 생긴 데이터를 보존하는 설정을 진행해보겠습니다.

여러가지가 많이 보이지만 마지막에 /mnt만 확인하면 됩니다.

 

아래는 pv 폴더에서 미리 작성해둔 파일들을 적용진행하는 내용들입니다.

kubectl apply -f pv.yml

위 명령어를 실행하여 pv 생성하면 persistentvolume/data1 created를 확인 할 수 있습니다.

 

kubectl get pv

생성 된 pv를 다시한번 확인합니다.

 

kubectl apply -f pvc.yml

위 명령어를 실행하여 이번에는 pvc를 생성합니다. 마찬가지로 생성 메세지를 확인 할 수 있습니다.

마찬가지로 아래와 같이 확인 할 수 있습니다.

 

이번에는 생성한 pv와 pvc를 이용하여 연결된 것을 확인하는 deploy를 배포 및 작성합니다.

위와 마찬가지로 진행합니다.

마지막 확인은 생략하였지만, 컨테이너에 들어가서 파일들을 확인해보고 파드 재 실행 및 재설치를 통해서

생겼던 파일들이 잘 저장되는지 확인하면 됩니다.

다음은 작성했던 <pv.yml> <pvc.yml> <ex-deplyment.yml>에 대한 내용입니다.

 

pv.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: "data1"
  labels:
    name: pv-data
spec:
  accessModes:
    - "ReadWriteOnce"
  capacity:
    storage: 2Gi
  hostPath:
    path: /mnt/data

pvc.yml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-master
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 2G
  storageClassName: ""
  selector:
    matchLabels:
      name: pv-data

ex-deplyment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deploy
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      volumes:
        - name: pv-master-volumes
          persistentVolumeClaim:
            claimName: pvc-master

      containers:
        - name: nginx
          image: nginx:latest
          imagePullPolicy: Never
          ports:
            - containerPort: 8004
          volumeMounts:
            - name: pv-master-volumes
              mountPath: /mnt/data
                #command: ["/bin/sh", "-c", "echo 'Hello, Kubernetes!' > /mnt/data/example.txt"]

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유