더북(TheBook)

여기에서 기억해야 할 점은 컨피그맵이 디렉터리로 취급된다는 것이다. 그리고 컨피그맵 속 각각의 항목이 컨테이너 파일 시스템 속 파일이 된다. 이 예제의 애플리케이션은 /app/appsettings.json 파일에서 기본 설정을 읽어 오며, 그다음으로 /app/config/config.json 파일을 찾아 이 파일에 담긴 설정값을 우선 적용한다. 컨테이너 이미지에는 /app/config 디렉터리가 없고 쿠버네티스가 이 디렉터리를 만들어 넣는다.

실습 애플리케이션 관점에서는 컨테이너 파일 시스템이 하나의 스토리지로 보인다. 그러나 실제로는 이미지와 컨피그맵을 합쳐 구성되었다. 그리고 파일 출처에 따라 동작하는 양상도 다르다.

# 기본 설정값이 담긴 설정 파일 확인
kubectl exec deploy/todo-web -- sh -c 'ls -l /app/app*.json'

# 볼륨 마운트로 주입된 설정 파일 확인
kubectl exec deploy/todo-web -- sh -c 'ls -l /app/config/*.json'

# 볼륨 마운트가 실제로 읽기 전용인지 확인
kubectl exec deploy/todo-web -- sh -c 'echo ch04 >> /app/config/config.json'
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.