티스토리 뷰
볼륨 Volume
Kubernetes 볼륨은 포드 내 컨테이너들이 데이터를 저장하고 공유할 수 있는 스토리지로, 포드의 생애주기와 관계없이 데이터를 유지하거나 임시로 사용할 수 있게 도와줌
배경
Kubernetes 볼륨은 컨테이너가 기본적으로 휘발성 스토리지를 사용해 컨테이너가 재시작되면 데이터가 사라지는 문제를 해결하기 위해 등장했음. 또한, 여러 컨테이너 간 데이터 공유가 필요하거나, 영구적으로 데이터를 저장해야 하는 요구사항을 충족하기 위해 다양한 유형의 볼륨이 도입됨. 이를 통해 애플리케이션이 데이터를 손실 없이 안정적으로 관리하고, 더 복잡한 상태 저장(Stateful) 애플리케이션을 운영할 수 있게 되었음.
k8s에서 사용 가능한 볼륨 유형
- emptyDir: 포드가 생성될 때 빈 디렉토리가 제공되며, 포드가 삭제되면 데이터가 손실됨.
- hostPath: 호스트 노드의 특정 파일 또는 디렉토리를 포드에 마운트하여 사용.
- gitRepo: Git 저장소에서 데이터를 가져와서 볼륨으로 마운트하는 방식 (현재는 deprecated 상태).
- nfs: 원격 NFS 서버의 디렉토리를 포드에 마운트하여 여러 포드가 파일을 공유할 수 있음.
- configMap, secrets: 설정 파일이나 민감한 정보를 포드에 환경 변수나 파일 형태로 마운트.
- persistentVolumeClaim (PVC): 사용자가 요청한 스토리지 리소스를 동적으로 할당받아 영구 데이터를 저장할 수 있는 볼륨.
이 외에도 다양한 유형이 있음
k8s의 볼륨을 활용한 데이터 영구 저장법
임시 볼륨 유형은 포드가 없어지면 볼륨도 없어지지만, 퍼시스턴트 볼륨은 포드의 수명을 넘어 존재
포드를 삭제해도 볼륨은 삭제되지 않아 데이터를 영구적으로 저장할 수 있음
Persistent Volume
쿠버네티스 클러스터에서 관리되는 스토리지 리소스로, 클러스터 외부의 실제 물리적 스토리지를 추상화하여 제공하는 객체. PV는 사용자가 명시적으로 생성하거나 클러스터 관리자가 설정한 정책에 따라 동적으로 할당될 수 있으며, 포드의 생명주기와 무관하게 데이터를 영구적으로 저장할 수 있음.
Persistent Volume Claim
사용자가 필요한 스토리지를 요청할 때 사용하는 객체로, PV와 연결됨. 사용자는 PVC를 통해 원하는 스토리지의 크기와 접근 모드(읽기/쓰기)를 지정하며, 쿠버네티스는 이에 맞는 PV를 찾아 PVC에 할당함. PVC는 PV를 추상화하여 애플리케이션이 스토리지를 더 쉽게 요청하고 사용할 수 있도록 해줌.
claim : 요구하다, 청구하다. 어떤 권리나 소유권을 주장하거나 요청하는 것.
Storage Class
쿠버네티스에서 PV를 생성할 때 사용할 스토리지의 종류와 동작 방식을 정의하는 객체입니다. 관리자는 Storage Class를 통해 스토리지의 성능, 유형(예: SSD, HDD), 및 동적 프로비저닝 방식 등을 설정할 수 있음. Storage Class를 통해 PVC 요청 시 자동으로 적절한 PV가 생성되고 할당됨.
참고
https://kubernetes.io/ko/docs/concepts/storage/volumes/
https://youtu.be/0swOh5C3OVM?si=CBQF-2i0RzWPWWGt
'devOps' 카테고리의 다른 글
[쿠버네티스] 쿠버네티스 내부 이해 (2) | 2024.11.05 |
---|---|
[쿠버네티스] Deployment와 카나리, 블루그린 배포 (1) | 2024.10.19 |
[쿠버네티스] 포드를 안정적으로 유지하기 위한 기술들 (5) | 2024.09.07 |
[쿠버네티스] 라벨, 주석, 네임스페이스 (1) | 2024.09.04 |
[쿠버네티스] 포드 간 통신, 포드 분배, 멀티 컨테이너 패턴 (1) | 2024.09.01 |
- Total
- Today
- Yesterday
- 쿠버네티스
- 리눅스 컨테이너
- redis
- 라라벨
- 분산처리
- 백엔드
- mockery
- devops
- 몽고디비
- laravel 테스트코드
- database
- MySQL
- k8s
- mongoDB
- 샤딩
- php
- pods
- 대규모 데이터 처리
- 주니어개발자
- laravel
- docker
- springboot
- java
- phpUnit
- NoSQL
- laravel 테스트
- 샤드
- 도커
- index
- kubernetes
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |