쿠버네티스/Storage

[K8S] 볼륨이란

CrunchyDev 2023. 12. 25. 18:02

1. 볼륨

  • 컨테이너에 문제가 발생하거나 노드에 장애가 발생할 경우, 컨테이너를 자유롭게 옮길 수 있다. 이 때, 어떤 이유로 컨테이너가 실행되지 않다면 컨테이너 내 데이터는 소실된다.
  • 위와 같은 경우, 컨테이너 외부에 볼륨을 위치시켜 데이터 소실을 방지할 수 있다.
  • 볼륨을 사용하면 컨테이너를 재시작해도 데이터를 유지할 수 있다.
  • 퍼시스턴드 볼륨을 사용하면 노드에 관계없이 데이터를 유지할 수 있다.

 

쿠버네티스 볼륨 (Kubernetes Volume)

2. emptyDir

  • emptyDir은 포드 내 볼륨을 할당해서 사용한다.
  • 포드가 삭제되면, 볼륨 또한 삭제된다.
apiVersion: v1
kind: Pod
metadata:
  name: {포드 명}
spec:
  containers:
  - name: {컨테이너 명}
    image: {이미지 명}
    volumeMounts:
    - mountPath: /emptyDir
      name: {볼륨 명}
  volumes:
  - name: {볼륨 명}
    emptyDir: {}

3. hostPath

  • hostPath는 포드가 실행된 노드 내 볼륨을 할당한다.
  • 노드가 삭제되면 볼륨 또한 삭제된다.
apiVersion: v1
kind: Pod
metadata:
  name: {포드 명}
spec:
  containers:
  - name: {컨테이너 명}
    image: {이미지 명}
    volumeMounts:
    - mountPath: {포드 내부 경로}
      name: {볼륨 명}
    ports:
    - containerPort: 8080
  volumes:
  - name: {볼륨 명}
    hostPath:
      path: {포드 외부 경로}
      type: Directory

4. nfs

  • nfs(network file system) 볼륨은 기존 사용하는 NFS 서버를 이용해 외부에 위치한 저장소를 포드에 마운트함을 의미한다.
  • NFS 클라이언트 역할을 한다.

'쿠버네티스 > Storage' 카테고리의 다른 글

[K8S] 프로비저닝이란  (0) 2023.12.31
[K8S] 공유 볼륨이란  (0) 2023.12.31
[K8S] PV, PVC란  (0) 2023.12.25
[K8S] 인터페이스란  (0) 2023.12.25
[K8S] 도커란  (0) 2023.12.25