일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 탈중앙화
- 부동산
- ps4
- loopback
- review
- kubernetes
- 게임
- game
- 암호화폐
- Games
- strongloop
- 젤다 왕눈
- 스마트 컨트랙트
- PC
- 보안
- 쿠버네티스
- 블록체인
- threejs
- 리뷰
- 거래
- 투자
- Linux
- 스마트 계약
- angular
- 이더리움
- Docker
- Three
- 주식
- 시장
- 비트코인
- Today
- Total
BaeBox
PersistentVolume / PersistentVolumeClaim 본문
volume 에는 많은 종류가 있다.
그 중 가장 일반적인 persistent Volume을 알아보자.
persistentVolume (이하 pv): pod 의 라이프사이클과 별개로 존재하는 저장소.
persistentVolumeClaim (이하 pvc): pv를 추상화 해 놓은 것. 왜 claim 이 필요한지는 모르겠음. 그저 pod 가 pv 에 직접적인 접근이 불가능하기 때문인것이라 예상. pv 생성자와 사용자가 다른 경우이거나 그도 아니면, pv 도 추상화를 하고 싶었나?
* PersistentVolume 생성
kind: PersistentVolume apiVersion: v1 metadata: name: task-pv-volume labels: type: local spec: storageClassName: manual capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data" |
* PersistentVolumeClaim 생성
kind: PersistentVolumeClaim |
* 생성된 pv 와 pvc 확인
kubectl get pv |
* pv 와 pvc 를 이용한 Depoloyment(mysql) 생성
apiVersion: extensions/v1beta1 kind: Deployment metadata: creationTimestamp: null labels: io.kompose.service: db name: db spec: replicas: 1 strategy: {} template: metadata: creationTimestamp: null labels: io.kompose.service: db spec: volumes: - name: task-pv-claim persistentVolumeClaim: claimName: task-pv-claim containers: - args: - --default-authentication-plugin=mysql_native_password env: - name: MYSQL_ROOT_PASSWORD value: example image: mariadb:10.2.8 name: db volumeMounts: - mountPath: /testDir name: task-pv-claim - mountPath: /var/lib/mysql name: task-pv-claim restartPolicy: Always ports: - containerPort: 3306 resources: {} |
NameSpace | Description |
volume | task-pv-claim 이라는 PVC 를 사용하겠다는 선언 |
volumeMounts | 컨테이너의 마운트 디렉토리와 마운트할 볼륨을 지정 |
kubectl describe deployments <deployment_name> 명령어를 이용하면 해당 deployment 의 상세정보를 볼 수 있다.
Mount 하위에 특정 볼륨(task-pv-claim)이 어떤 위치(/sam, /var/lib/mysql)에 마운트 되어있는지 확인할 수 있다.
위의 이미지에서도 확인 가능하지만, 동일한 볼륨을 하나의 포드의 여러 디렉토리에 마운트 가능하다.
덤. pv 를 만들지 않고, pvc 를 만들고 이용시 임시 pv 가 같이 선언(Dynamic Provisioning)되기 때문에 호스트의 디렉토리를 마운트할 것이 아니라면, pv 를 선언하지 않고 사용하여도 된다. 즉, 호스트의 디렉토리를 마운트 할 것이라면 pv와 pvc를 둘 다 선언하여야 한다.
https://kubernetes.io/docs/concepts/storage/volumes/#hostpath
https://supergiant.io/blog/persistent-storage-with-persistent-volumes-in-kubernetes/
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes
공식 문서가 어지간한 다른 블로그에서 설명해주는것보다 쉽다. 뭐야 이거
'개발 관련' 카테고리의 다른 글
Pod (포드) (0) | 2019.11.02 |
---|---|
local registry (0) | 2019.11.02 |
Ingress (0) | 2019.11.02 |
Web UI(dashboard) 설치 (0) | 2019.11.02 |
Minikube 설치 및 cluster 구성 (0) | 2019.11.02 |