이렇게 설정의 출처별로 다른 우선순위를 적용하는 전략은 매우 흔히 쓰인다. 이 방법이 어렵게 느껴진다면 무료 전자책으로 제공되는 부록 C에 수록한 필자의 이전 책 <도커 교과서> 내용을 참고하기 바란다. 이 예제 애플리케이션은 .NET 코어 애플리케이션이지만 자바 스프링, Node.js, Go, 파이썬 등 다른 유형의 애플리케이션에서도 비슷한 설정 전략을 찾아볼 수 있다. 쿠버네티스에서는 이들 애플리케이션 모두에 다음 전략을 사용한다.
• 기본 설정값은 컨테이너 이미지에 포함시킨다. 이미지에 포함되는 설정은 모든 환경에 공통으로 적용되는 일부 설정일 수도 있고, 모든 설정의 기본값을 포함시켜 별도의 추가 설정이 없다면 애플리케이션이 개발 모드로 동작하게 해도 좋다(docker run 명령 한 번이면 바로 애플리케이션을 실행할 수 있어 개발자 입장에서 편리하다).
• 각 환경의 실제 설정값은 컨피그맵에 담겨 컨테이너의 파일 시스템에 전달된다. 주로 애플리케이션에 설정 파일을 찾도록 지정한 경로에 설정 데이터를 파일 형태로 주입하거나 컨테이너 이미지에 담긴 파일을 덮어쓰는 형태다.
• 변경이 필요한 설정값은 디플로이먼트 내 파드 정의에서 환경 변수 형태로 적용한다.