Volume
컨테이너의 디스크에 있는 파일은 임시 파일이므로 컨테이너에서 실행할 때 중요하지 않은 애플리케이션에 몇 가지 문제가 발생합니다. 컨테이너가 충돌하거나 중지되면 한 가지 문제가 발생합니다. 컨테이너 상태는 저장되지 않으므로 컨테이너 수명 동안 생성되거나 수정된 모든 파일이 손실됩니다. 충돌 중에 kubelet은 깨끗한 상태로 컨테이너를 다시 시작합니다. 여러 컨테이너가 하나의 포드에서 실행 중이고 파일을 공유해야 할 때 또 다른 문제가 발생합니다. 모든 컨테이너에서 공유 파일 시스템을 설정하고 액세스하는 것은 어려울 수 있습니다. Kubernetes 볼륨 추상화는 이러한 문제를 모두 해결합니다. Pod에 대해 잘 알고 있는 것이 좋습니다.
emptyDir
- 컨테이너끼리 데이터를 공유하기 위해서 볼륨을 사용
- 최초에 볼륨이 비어있기 때문에 emptyDir이라는 명칭이 됨
- 아래와 같이 한 파드 내의 두 컨테이너가 같은 볼륨 사용 가능
- Pod 생성시 만들어지고 삭제시 없어짐 따라서 일시적인 리소스를 사용해야 함.
hostPath
- 이름 그대로 host, 즉 Pod가 올라가 있는 Node의 path를 볼륨으로서 사용함
- Pod가 죽어도 node에 있는 데이터는 사라지지 않음
- 만약 해당 Pod가 해당 Node에 뜨지 않으면 볼륨에 마운트 할 수 없음.
- Node가 추가 될떄마다
- 어렵진 않지만 자동화에 사람의 개입이 들어가는 순간 실수의 가능성이 생김.
PVC/PV
- Volume을 사용하기 위해선 반드시 PVC를 사용해야함.
- 쿠버네티스는 User 영역과 Admin 영역으로 나누기 때문
참고
'기술 탐구 > k8s' 카테고리의 다른 글
(k8s) Service의 정의와 3가지 타입(ClusterIP, NodePort, LoadBalaner) (0) | 2024.08.04 |
---|---|
(CKA) MOCK 1 풀이와 관련 공식 문서 (0) | 2024.07.18 |
(k8s) m1 mac 환경에서 k8s 클러스터를 구축해보자. (0) | 2024.07.08 |
(k8s) Pod에 대한 정의와 각종 속성 (2) | 2024.06.14 |
(k8s) 쿠버네티스 명령어 (2) | 2024.06.13 |