쿠버네티스 세번째 이야기

진영민·2023년 12월 3일
0

kubernetes

목록 보기
3/4

쿠버네티스는 파드가 오류로 인해 사라지면, 디플로이가 이를 삭제하고 새로운 파드로 대체한다.
하지만 만약 파드에 데이터가 저장되어 있다면 저장된 데이터가 삭제될 것이다.

공유 스토리지

파드 스토리지

파드 수준의 스토리지이며, 파드와 같은 생에 주기를 갖는다.
파드가 재시작되더라도 유지된다.

      volumes:
        - name: data
          emptyDir: {}

하지만 파드가 대체되어 새 파드를 만들면 해당 내용은 지워진다.

노드 스토리지

노드의 디스크를 가리키는 볼륨.
호스트경로 볼륨이라 한다.
컨테이너 파일 시스템에 마운트되는 형태로 쓰인다.

파드가 교체되어도 데이터를 유지하지만, 파드가 같은 노드에 배치되었을 때만 데이터를 유지한다.

      volumes:
        - name: node-root
          hostPath:
            path: /
            type: Directory

노드가 한 개 이상일 경우 문제가 발생할 수 있으며, 모든 파드에서 해당 노드의 파일 시스템에 접근할 수 있는 보안 취약점이 발생할 수 있다.

전체에서 접근 가능한 스토리지

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv01
spec:
  capacity:
    storage: 50Mi
  accessModes:
    - ReadWriteOnce
  local:
    path: /volumes/pv01 
  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
          - key: sectet
            operator: In
            values:
              - ch05

이 방법은 한 노드에만 볼륨을 위치시키기 때문에 노드에 레이블을 달아 식별하는것이 좋다.

파드가 해당 영구볼륨을 사용하려면 영구볼륨클레임을 사용해야 한다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 40Mi
  storageClassName: ""
profile
코린이

0개의 댓글