파드가 저장용 볼륨을 사용하도록 구성하기
파드가 저장용 볼륨을 사용하도록 구성하기 (Configure a Pod to Use a Volume for Storage)
이 페이지는 파드가 저장용 볼륨(Volume)을 사용하도록 구성하는 방법을 보여줘요.
컨테이너의 파일 시스템은 컨테이너가 존재하는 동안만 유지돼요. 그래서 컨테이너가 종료되고 재시작되면 파일 시스템 변경 사항은 사라져요. 컨테이너와 독립적인 더 일관된 저장을 위해서는 볼륨을 사용할 수 있어요. 이는 특히 키-값 저장소(예: Redis)와 데이터베이스 같은 유상태 애플리케이션에서 중요해요.
출처: 문서
본문
파드용 볼륨 구성하기
이 실습에서 한 개의 컨테이너를 실행하는 파드를 만들어요. 이 파드에는 컨테이너가 종료되고 재시작되더라도 파드 수명 동안 유지되는 emptyDir 유형의 볼륨이 있어요. 파드의 구성 파일은 다음과 같아요:
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
파드를 만듭니다:
kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml
파드의 컨테이너가 실행 중인지 확인하고, 파드의 변경 사항을 지켜봅니다:
kubectl get pod redis --watch
출력은 다음과 같아요:
NAME READY STATUS RESTARTS AGE
redis 1/1 Running 0 13s
다른 터미널에서 실행 중인 컨테이너의 셸을 얻습니다:
kubectl exec -it redis -- /bin/bash
셸에서 /data/redis 로 이동한 다음 파일을 만듭니다:
root@redis:/data# cd /data/redis/
root@redis:/data/redis# echo Hello > test-file
셸에서 실행 중인 프로세스를 나열합니다:
root@redis:/data/redis# apt-get update
root@redis:/data/redis# apt-get install procps
root@redis:/data/redis# ps aux
출력은 다음과 같아요:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
redis 1 0.1 0.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379
root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash
root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux
셸에서 Redis 프로세스를 종료합니다:
root@redis:/data/redis# kill <pid>
여기서 <pid> 는 Redis 프로세스 ID(PID)예요.
원래 터미널에서 Redis 파드의 변경 사항을 지켜봅니다. 잠시 후 다음과 같은 모습을 보게 돼요:
NAME READY STATUS RESTARTS AGE
redis 1/1 Running 0 13s
...
이 시점에서 컨테이너는 종료됐다가 재시작됐어요. Redis 파드의 restartPolicy가 Always 이기 때문이에요.