쿠버네티스 Volume (local)

Chori·2025년 11월 16일
post-thumbnail

초보를 위한 쿠버네티스 안내서를 수강하며 정리한 내용입니다.

개념

  • Pod를 제거하면 컨테이너 내부에 저장했던 데이터도 모두 사라짐
  • 데이터가 유실되지 않으려면 별도의 저장소에 데이터를 저장하고 컨테이너를 새로 만들 때 이전 데이터를 가져와야 함
  • 쿠버네티스는 Volume을 이용하여 컨테이너의 디렉터리를 외부 저장소와 연결하고 다양한 플러그인을 지원하여 흔히 사용하는 대부분의 스토리지를 사용할 수 있음

empty-dir

  • Pod 안에 속한 컨테이너 간 디렉터리를 공유하는 방법
  • 보통 사이드카라는 패턴에서 사용, 예를 들어 특정 컨테이너에서 생성되는 로그 파일을 별도의 컨테이너(사이드카)가 수집할 수 있음
apiVersion: v1
kind: Pod
metadata:
  name: sidecar
spec:
  containers:
    - name: app
      image: busybox
      args:
        - /bin/sh
        - -c
        - >
          while true;
          do
            echo "$(date)\n" >> /var/log/example.log;
            sleep 1;
          done
        volumeMounts:
          - name: varlog
            mountPath: /var/log
      - name: sidecar
        image: busybox
        args: [/bin/sh, -c, "tail -f /var/log/example.log"]
        volumeMounts:
          - name: varlog
            mountPath: /var/log
  volumes:
    - name: varlog
      emptyDir: {}

hostpath

  • 호스트(Node) 디렉터리를 컨테이너 디렉터리에 연결하는 방법
apiVersion: v1
kind: Pod
metadata:
  name: host-log
spec:
  containers:
    - name: log
      image: busybox
      args: ["/bin/sh", "-c", "sleep infinity"]
      volumeMounts:
        - name: varlog
          mountPath: /host/var/log
  volumes:
    - name: varlog
      hostPath:
        path: /var/log
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글