일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- AWS
- karpenter
- k8s
- aews
- VPA
- CAS
- 클라우드 국비지원교육 후기
- eks endpoint access
- Terraform
- kubernetes
- 합격 후기
- volume
- 도커
- docker
- keda
- HPA
- POD
- 단기 합격
- 외부 모듈
- 클라우드 국비지원교육
- aews ci/cd
- storageclass
- Python
- observability
- EKS
- aews vault
- Jenkins
- 국비지원교육
- 공부 방법
- 클라우드 엔지니어
- Today
- Total
모험가
Volume - Dynamic Provisioning, StorageClass, Status, ReclaimPolicy 본문
이 글은 인프런의 대세는 쿠버네티스 강의를 보며 정리한 글입니다.
Volume = 데이터를 안전하게 관리(유지)하기 위해 사용하는 것
-> k8s Cluster과 분리되어서 관리됨
Volume에는 크게 2가지가 있음
1. Internal Network
2. External Network
Internal Network
- 내부망에서는 On-Premise Solution을 설치할 수 있음
ex) StorageOS, Ceph, GlusterFS와 같은게 있고 이것이 노드 자원을 이용해 Volume을 관리
- 내부망에서 k8s를 구성하는 node의 hostPath, local Volume을 이용 가능
- 내부망에서 NFS를 사용해서 다른 서버를 Volume으로 사용 가능
External Network
- 외부의 스토리지 서비스를 이용할 수 있음
ex) AWS, GCP, Azure
- 초급에서 배운 Volume은 이러하게 k8s Cluster에서 PV를 만든 이후
- PVC를 만들어주면 적절한 PV와 연결해주고
- 이것을 Pod와 연결했음.
이렇게 하면 Volume이 필요할 때마다 PV를 만들어야하고 또 연결하려고 Storage, AccessMode를 맞춰야하는게 힘듬
So!!!
쿠버네티스에서는 Dynamic Provisioning을 지원함
Dynamic Provisioning
- 사용자가 PVC를 만들면 알아서 PV를 만들어주고 실제로 Volume과 연결해주는 기능을 지님
- 모든 PV에는 Pod처럼 각각의 Status가 존재하여, PV와 PVC의 연결 상태와 에러 등을 알 수 있음
- PV를 삭제하는 부분에서 정책적인 요소가 있음
StorageClass
- Dynamic Provisioning을 지원해주는 Storage Solution을 선택해야함
-> STORAGEOS 선택
- StorageClass 오브젝트가 아주 중요함!!!
- StorageClass를 사용해서 동적으로 PV를 만드는데 PVC를 만들 때 StorageClassName이 존재
- StorageClassName 항목에 ""를 넣으면 연결이 되었었음
- STORAGEOS로 만든 storageclass에 "fast"를 넣으면 자동으로 STORAGEOS를 가진 PV가 생성
- 이것이 추가적으로도 가능하고 기본적으로 default인데 PVC의 StorageClassName을 생략하면 default Storageclass가 적용
Status
최초상태 Available
PVC가 만들어지면 PV의 상태는 Bound 상태가 됨
PVC가 삭제되면 PV의 상태는 Released가 됨
PV와 실제 데이터 사이에 문제가 생기면 PV의 상태는 Failed
ReclaimPolicy
1. Retain
- PV를 직접 만들면 default
- 데이터 보존 가능
- 재시용이 불가
2. Delete
- StorageClass로 만들어진 PV면 default
- Volume에 따라 데이터 삭제
- 재사용이 불가
3. Recycle
- Deprecated
- 데이터 삭제
- 재사용이 가능
'쿠버네티스 > 중급' 카테고리의 다른 글
Service - Headless, Endpoint, ExternalName (0) | 2022.08.08 |
---|---|
Pod - QoS Classes, Node Scheduling (0) | 2022.08.08 |
Pod - Lifecycle, Probe (0) | 2022.08.08 |