반응형
PV와 PVC
정의
PV - Persistent Volume
PVC - Persistent Volume Claim
PV는 Container안 특정 폴더와 node의 특정폴더(물리디스크)를 마운트해주는 볼륨이다.
컨테이너가 삭제될 때 컨테이너안의 모든 폴더가 삭제되는데, 볼륨으로 마운트해주면 컨테이너가 삭제되어도 물리폴더는 삭제되지 않으므로 컨테이너를 다시 시작할때 마운트해줄수 있다.
PVC는 deployment에 PV를 마운트해줄때 사용하는것이며 연결고리 역할을 해준다.
그래서 pv를 생성해주고 pvc를 생성하여 binding 상태를 확인하고 deployment에서 pvc를 이용하여 볼륨을 마운트하는 형태로 사용한다.
yaml Example
- pv
apiVersion: v1 kind: PersistentVolume metadata: name: testpv spec: capacity: storage: 2Gi volumeMode: Filesystem accessModes: - ReadWriteOnce storageClassName: manual persistentVolumeReclaimPolicy: Delete hostPath: path: /mnt/test # host 노드에 /mnt/test 노드에 마운트한다는 뜻이다. host노드는 컨테이너가 올라가있는 워커노드임
- pvc
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: testpvc spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 2Gi storageClassName: manual
위의 두 파일을 apply 먼저 시켜준 후 deploy.yaml 파일에 적용시켜 배포해준다.
nginx.yaml을 테스트로 적용시켜보겠다.
- nginx.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deploy spec: selector: matchLabels: run: my-nginx replicas: 1 template: metadata: labels: run: my-nginx spec: containers: - name: my-nginx-container image: nginx:1.9.1 imagePullPolicy: Always volumeMounts: - name: pv mountPath: /mnt ports: - containerPort: 80 volumes: - name: pv persistentVolumeClaim: claimName: testpvc
반응형
'쿠버네티스' 카테고리의 다른 글
[Kubernetes] Mysql 구축하기 (0) | 2023.08.11 |
---|---|
[Kubernetes] Mysql 덤프 (0) | 2023.08.07 |
[Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 3 (0) | 2023.08.01 |
[Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 2 (0) | 2023.07.28 |
[Kubernetes] HA-Cluster (고가용성 클러스터) 구축 - 1 (0) | 2023.07.26 |