| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 러닝
- AWS
- 황리단길 맛집
- 속초 여행
- 쿼리 기초
- 경주 맛집
- Doker
- 경주 여행
- 네트워크
- 프론트엔드
- IT
- 경주
- 클라우드
- 잠실 맛집
- 쿠버네티스
- 속초 맛집
- docker
- 코딩
- Amazon Web Service
- 경주 맛집 추천
- 맛집 추천
- 도커
- kubernetes
- 로지텍
- 리눅스
- 카페 추천
- cloud
- IT자격증
- SQL 기초
- IT 신기술
- Today
- Total
Devops 엔지니어 솔렐레 IT
[도커/쿠버네티스 기초] Kubernetes Volume - emptyDir, hostPath, PV/PVC 본문
[도커/쿠버네티스 기초] Kubernetes Volume - emptyDir, hostPath, PV/PVC
솔렐레_ 2020. 11. 23. 09:00
Volume은 데이터를 안정적으로 관리하기 위해서 사용이 되며 이는 쿠버네티스 클러스터와 분리가 되어 관리가 됩니다.
이는 크게 외부망 관리 / 내부망 관리로 나눌 수 있습니다. 외부망 관리로는 AWS, GCP, Azure와 같은 클라우드 스토리지에 연결된 경우입니다. 내부망 관리로는 쿠버네티스 안에 Hostpath나 local에서 관리를 하거나 On-premise Solution을 이용하거나 NFS를 통해서 Volume을 사용할 수 있습니다.
1. emptyDir
컨테이너들끼리 데이터를 공유하기 위해서 Volume을 사용하고 최초 Volume 이 생성될 때 비어있는 것을 emptyDir이라 명칭 합니다. Volume에 마운트 된 Container는 Volume을 통해 서로 파일 공유가 가능합니다. Pod가 생성되면 같이 생성이 되고 삭제하면 없어지기 때문에 일시적인 데이터만 저장을 해서 사용하는 것이 좋습니다.
2. hostPath
Pod들이 올라가 있는 Volume의 Path를 의미하며 Pod가 삭제되어도 해당 노드에 있는 Volume은 삭제가 되지 않습니다. 동일 노드 내에 있는 hostPath로 데이터를 사용할 수 있습니다. 노드에서 다른 노드에 있는 Volume의 사용이 필요하다면 Node 추가 시마다 hostPath로 Mount 해주는 것이 필요합니다. Node에는 시스템 파일이나 설정 파일 같이 자신이 할당되어있는 Host에 데이터를 Pod가 읽거나 사용하기 위해 hostPath를 사용합니다.
3. PV/PVC (Persistent Volume, Persistent Volume Claim)
Pod에 영속성 있는 Volume을 제공하기 위한 개념으로 로컬 Volume과 외부에 원격으로 연결되는 Volume들에 PV를 연결하고 Pod는 PVC와 연결되어 PV와 연결합니다. Volume의 설정이 각각의 종류마다 다르기 때문에 PV를 통해 admin에서 설정들을 관리합니다. PVC는 Pod에서 필요한 내용들에 대해서 User 입장에서 정의합니다. 따라서 Pod의 PVC에 정의된 요청에 따라 PV에서 Volume을 선택하여 스토리지를 제공합니다.
* 동작 순서: PV 정의 생성 > PVC 생성 > PV 연결 > Pod 생성 시 PVC 마운팅
4. Dynamic Provisioning
Dynamic Provisioning은 사용자가 PVC를 만들면 자동으로 PV를 만들어주고 Volume과 연결해주는 기능을 제공합니다. 모든 PV에는 각각의 상태(Status)가 존재하고 이를 통해 PVC와의 연결 상태나 에러 여부에 대한 확인이 가능합니다. 또한 StorageClass를 설정하게 되면 동적으로 PV를 만들 수가 있는데 StorageClassName을 설정하면 해당 이름과 연결되는 PV를 생성해줍니다. 또한 Default 설정을 하게 되면 StorageClassName을 생략을 했을 때 Default 적용이 되어 PV를 만들어 줍니다.
* PV Status
- Available : 최초 PV가 만들어졌을 때
- Bound: PV가 PVC와 연결이 된 상태
- Released: PVC를 삭제했을 경우 PV와 연결이 끊어지면서 Released 상태가 됨
=> ReclaimPolicy에 따라 PV의 상태가 달라짐
=> Retain(Default , 데이터 보존, 재사용 불가) / Delete(StorageClass 사용 시 Default, volume에 따라 데이터 삭제, 재사용 불가) / Recycle(Available 상태로 됨, 데이터 삭제, 재사용 가능)
- Failed: PVC와 PV의 연결에 문제가 생겼을 경우
'Devops 엔지니어가 알려주는 클라우드 지식 > Docker, Kubernetes' 카테고리의 다른 글
| [도커/쿠버네티스 기초] Kubernetes Controller - 개념, Replica, Stateful (0) | 2020.11.25 |
|---|---|
| [도커/쿠버네티스 기초] kubernetes Namespace, ResourceQuota, LimitRange (0) | 2020.11.24 |
| [도커/쿠버네티스 기초] Kubernetes Service - 개념, 종류 (0) | 2020.11.22 |
| [도커/쿠버네티스 기초] Kubernetes Pod - 개념, Lifecycle, Node Scheduling (0) | 2020.11.21 |
| [도커/쿠버네티스 기초] Kubernetes - 쿠버네티스 개념, VM vs Container, Master / Node (0) | 2020.11.20 |