Kubernetes/08. 쿠버네티스 사용자화

[쿠버네티스] 컨테이너 애플리케이션 사용자화 개념 정리

Jaden Park 2021. 6. 23. 11:23

들어가며

이미지 사용자화

환경 변수 사용자화

configMap(컨피그맵)을 이용한 사용자화

시크릿을 이용한 사용자화


들어가며:

컨테이너에 있는 애플리케이션을 몇 가지 기능을 통해 사용자화 할 수 있습니다.
각각의 기능을 나열하고 개념을 알아보도록 하겠습니다.


이미지 사용자화

도커 이미지 작성 시 Dockerfile의 ENTRYPOINT 및 CMD 지시어를 지정하여 애플리케이션을 어떻게 동작할 것인지 지정할 수 있습니다. 컨테이너 이미지를 통해 컨테이너를 실행할 떄 실행할 명령어(프로세스, 애플리케이션) 및 인자(옵션)을 지정할 수 있습니다.

일반적으로 명령어는 실행할 애플리케이션이기 떄문에 그대로 두지만, 인자는 필요에 따라 다른 인자를 옵션 형태로 전달함으로 다른 동작을 하도록 할 수 있습니다.


환경 변수 사용자화

쉘의 환경 변수를 전당해 사용자화 할 수 있습니다. 물론 컨테이너에 사용할 이미지가 쉘의 환경 변수를 사용할 수 있도록 구성이 되어 있어야 하지만, 도커 허브의 많은 이미지들은 환경 변수를 사용하여 애플리케이션을 사용자화 할 수 있도록 구성되어 있습니다.

이런 환경 변수들은 실제 대부분 실행할 애플리케이션의 설정을 사용자화 할 수 있는데, 전통적인 물리 시스템이나 가상 시스템의 경우와 다르게 컨테이너의 설정 파일은 매번/필요 시마다 변경하는 것이 어렵기 때문에, 해당 서비스의 설정파일(예: Apache의 httpd.conf, nginx의 nginx.conf 등)에 특정한 속성을 하드코딩을 사용하지 않고 환경 변소를 통해 사용자화 할 수 있도록 대부분의 이미지가 환경 변수를 통한 사용자화를 제공하고 있습니다.


configMap(컨피그맵)을 이용한 사용자화

쿠버네티스 시스템의 컨피그 맵 리소스는 키/값 저장소를 제공하며 컨테이너에 환경 변수나 사용자화된 설정 파일을 볼륨의 형태로 제공할 수 있습니다.


시크릿을 이용한 사용자화

시크릿은 컨피크 맵과 같은 기능을 제공하지만, 패스워드나 암호화 키, 토큰 등 평문으로 제공되면 안 되는 민감한 정보를 저장하고, 환경 변수나 볼륨 형태로 안전하게 제공할 수 있습니다.