본문 바로가기
반응형

 

1. 컨테이너의 사용자화

 

그럼 이제 컨테이너에서 애플리케이션을 어떻게 사용자에게 맞출수 있는지 확인해보겠습니다. 이미지 작성시 entrypoint cmd 를 이용하거나, 쉘의 환경변수나 애플리케이션의 conf 파일을 변경하는 방법도 있지만 쿠버네티스 기능인 컨피그맵 시크릿에 대해 알아보겠습니다. 우선 쿠버네티스에서 컨피그맵이란 간단한 설정 값들을 키밸류 형태로 저장하여 사용할 수 있는 쿠버네티스 저장소입니다

https://schh.medium.com/kubernetes-series-explaining-configmaps-with-practical-examples-a9eacf77449b

 

아래 그림처럼  QA, DEV, PROD 라는 세가지 환경이 있다고 가정해보겠습니다. 만약 컨피그맵을 사용하지 않고 각각의 이미지에 환경변수등을 직접 집어넣어 관리한다면, 이미지가 업데이트될때마다 총 3개 (QA, DEV, PROD) 의 이미지 버전을 관리해야할 것입니다. 만약 컨피그맵을 사용하면, 이미지는 하나로 파드를 띄울때마다 환경에 맞게 컨피그맵을 사용하면 버전관리도 편하면서 환경설정역시 손쉽게 해결이 가능합니다.

컨피그와 거의 같은 시크릿은 패스워드나 암호화 키나 인증서같은 보안에 민감한 데이터를 제공할 수 있는 오브젝트입니다.다만 기본값으로는 BASE64 방식으로 인코딩하여 제공되는것이기에 보안에 취약하니 확인이 필요합니다.

만약 이런 사용자화를 하지않는다면 위쪽에 위치한 파드처럼 개발, 운영서버의 파드의 내용, SSH, User, Key 값을 달리 관리하여야 하기때문에 서비스의 개발버전, 운영버전의 두개의 이미지로 나뉘어 계속 관리해야합니다. 컨피그맵과 시크릿을 적절히 이용한다면 서비스를 하나의 버전으로 관리할 수 있습니다. 이렇게 환경에 따라 쉽게 변하는 값들을 외부에서 결정할수 있도록 도와주는 것이 컨피그맵과 시크릿입니다.

728x90
반응형

'IT 공부 > PaaS' 카테고리의 다른 글

[K8S] 8. Statefulset  (0) 2024.01.20
[K8S] 7. Deployment  (0) 2024.01.19
[K8S] 5. Storage  (1) 2024.01.17
[K8S] 4. 네트워크 서비스  (0) 2024.01.16
[K8S] 3. 컨트롤러 리소스  (0) 2024.01.12

한걸음 한걸음

개인적인 기록