Storage of Kubernetes

SquidEngineer·2024년 4월 24일

Kubernetes

목록 보기
6/12

Volume

볼륨은 파드의 일부로 사용되며, 파드 내의 컨테이너들이 데이터를 지속적으로 저장하고 공유할 수 있게 해준다. 컨테이너가 내려갈 때 컨테이너 내의 파일이 손실된다. 볼륨은 이를 방지하는 중요한 역할을 하며, 파드가 존재하는 동안 지속된다.
Storage는 쿠버네티스에서 중요한 구성 요소로, 파드 내 컨테이너가 사용하는 데이터의 지속성을 관리하는데 사용된다. 컨테이너가 종료될 때 데이터 손실을 방지하기 위해 볼륨이 필요하다. 볼륨은 파드에서 직접 지정할 수 있으며, 이러한 볼륨 중에는 emptyDir, hostPath, nfs 등이 있다.

Node-local memory

파드에 연결되며, RAM이나 drive의 영구 저장소에 저장된다. 파드에 의존하기 때문에 파드가 실행되는 동안에는 내용물이 존재하나, pod가 down되면 데이터는 손실된다.

emptyDir
emptyDir 볼륨은 파드가 노드에 할당될 때 생성되며, 파드가 실행되는 동안에만 존재한다. 초기에는 비어있지만 파드 내의 모든 컨테이너가 데이터를 읽고 쓰는 데 사용할 수 있다. 파드가 종료되면 emptyDir에 저장된 데이터도 사라진다. 이는 일시적인 데이터 보관이 필요할 때 유용하다.
hostPath
hostPath 볼륨은 파드가 생성된 노드의 특정 파일이나 디렉토리를 볼륨으로 사용한다. 이를 통해 파드가 종료되어도 데이터는 노드에 남아 있어 지속성을 제공한다. 그러나 파드가 다른 노드에 재생성될 경우, 이전 노드에 있던 hostPath 볼륨의 데이터는 사용할 수 없게 된다. hostPath는 보안 위험이 있어 제한적으로 사용하는 것이 좋으며, 필요한 파일이나 디렉토리만을 지정하고, 가능하면 읽기 전용으로 마운트하는 것이 안전하다.

File-sharing volume

볼륨이 독립적이며 파드 외부에 배치된다.

nfs (Network File System)
nfs 볼륨은 네트워크를 통해 접근할 수 있는 원격 파일 시스템을 볼륨으로 사용한다. nfs를 통해 파드는 물리적 위치에 구애받지 않고 데이터를 저장하고 접근할 수 있다. 이는 여러 노드에 걸쳐 있는 파드들이 같은 데이터를 공유하거나 접근해야 할 때 특히 유용하다. nfs 볼륨은 클러스터 내 어디서든 접근 가능하며, 데이터의 지속성과 가용성을 높여준다.

ConfigMap

쿠버네티스에서 ConfigMap은 컨테이너 구성 정보를 중앙에서 관리하는 데 사용된다. 컨테이너에서 필요한 API 키, 환경 설정 파일, 설정(cfg) 등을 포함할 수 있으며, 파드가 생성될 때 이러한 정보들을 key-value 형식으로 참조한다. 보안과 관련된 민감한 정보는 ConfigMap에 포함시키지 않으며, kubectl create configmap 명령을 통해 ConfigMap을 생성할 수 있다.

Secret

Secret은 더 민감한 정보를 저장하는 데 사용된다. 비밀번호, 인증 토큰, SSH 키와 같은 중요한 데이터를 저장하고, 이 정보들은 base64로 인코딩되어 관리된다. 일반적인 설정 파일은 ConfigMap을 통해, 민감한 데이터는 Secret을 통해 관리된다.

PersistentVolume (PV)

스토리지를 추상화하여 접근하는 방식을 제공한다. PV는 클러스터 리소스로서, 영구 스토리지 볼륨을 사용하기 위해 설정된다. PV는 정적 프로비저닝과 동적 프로비저닝을 지원하며, 스토리지 클래스를 통해 동적으로 프로비저닝될 수 있다. PV의 접근 모드에는 ReadWriteOnce, ReadOnlyMany, ReadWriteMany, 그리고 ReadWriteOncePod가 있으며, 각 모드는 다른 사용 시나리오를 지원한다.

PersistentVolumeClaim (PVC)

사용자의 스토리지 요청을 나타낸다. PVC는 특정 크기와 접근 모드를 요청할 수 있으며, 파드와 파드가 사용할 스토리지를 분리함으로써 더 유연한 스토리지 사용이 가능하다. PVC를 사용하면 파드는 스토리지를 직접 할당받지 않고도 필요한 리소스를 사용할 수 있다. 이 구조는 파드가 스토리지 선택에 대해 고민하지 않도록 해주며, 효율적인 리소스 관리를 가능하게 한다.

profile
유연한 사고의 데이터 엔지니어입니다

0개의 댓글