Skip to main content

ConfigMap

Turaco에서 제공하는 백엔드 및 프론트엔드에 주입을 위한 ConfigMap 리소스

컨피그맵은 키-값 쌍으로 기밀이 아닌 데이터를 저장하는 데 사용하는 API 오브젝트이며 커맨드-라인 인수 또는 파일 형태로 구성됩니다. 시크릿과 마찬가지로 환경변수 또는 볼륨형태로 마운트되어 컨테이너내의 파드에서 참조해서 사용할 수 있습니다.

마이크로서비스 설계 시, 각 애플리케이션에 대한 환경별 구성을 분리하여 애플리케이션을 쉽게 적용이 가능합니다.

본 챕터에서는 ConfigMap 컴포넌트에 대한 사용법을 설명합니다.


컴포넌트 배치

ConfigMap 컴포넌트는 아키텍처 설계 화면 (이하 디자이너 화면)에서 좌측에 위치한 컴포넌트 목록에서 Configuration 카테고리에 있습니다.

  1. 설계화면 왼쪽 컴포넌트 리스트 화면에서 ConfigMap 컴포넌트를 선택 후 디자이너 화면으로 드래그 & 드롭합니다.

컴포넌트배치

  1. 배치된 ConfigMap 컴포넌트에 대한 이름과 설명을 입력 후 확인 버튼을 클릭합니다. 이름과 설명은 필수 입력값이며 입력하지 않으면 확인 버튼이 활성화되지 않습니다.
info

ConfigMap 컴포넌트는 백엔드 및 프론트엔드 컴포넌트와 연동되어 동작하며 최소한 1개 이상의 대상 컴포넌트와 연결이 되어야 합니다. 설정이 완료되면 백엔드 및 프론트엔드 컴포넌트와 연결을 해야 대상 컴포넌트가 배포 되었을때 컨테이너의 환경 변수 및 볼륨으로 주입됩니다.

속성 설정

ConfigMap 컴포넌트는 Secret 컴포넌트와는 달리 참조 타입과 데이터 부분만 설정할 수 있습니다.

참조 타입 설정

타입은 ConfigMap이 컨테이너에 어떤 형태로 사용할 것인지 사용 타입을 지정합니다. 선택 가능한 타입은 파일 형태로 지정하는 방법과 환경 변수로 주입하는 방법이 있습니다.

  1. 설정하고 있는 ConfigMap이 컨테이너에 어떤 형태로 주입할 것인지 결정할 수 있습니다.
    드롭다운 메뉴를 클릭하면 선택 가능한 항목이 표시됩니다.

  2. 메뉴 중 사용하고자 하는 시크릿 타입을 선택합니다.

  • File -> 볼륨 마운트 방식의 파일 형태로 사용
  • Environment -> 컨테이너의 환경 변수 형태로 사용

데이터 형식 설정

쿠버네티스의 리소스에는 Data 와 stringData 의 두 가지 맵이 포함되어 있습니다. 두 가지 맵의 차이는 아래와 같습니다.

  • Data -> base64로 인코딩된 임의의 데이터를 기입하는 데 사용
  • stringData -> 편의를 위해 제공되며, 같은 데이터를 인코딩되지 않은 문자열 사용
info

ConfigMap의 Data 및 stringData은 '영숫자', ' - ', ' _ ' 그리고 ' . ' 로 구성되어야 합니다.


  1. ConfigMap의 데이터 형식을 선택합니다.
    드롭다운 메뉴를 클릭하면 선택 가능한 항목이 표시됩니다.

  2. 메뉴 중 사용하고자 하는 데이터 형식을 선택합니다.

  • Data -> Base64로 인코딩해서 사용
  • StringData -> Base64로 인코딩 되지 않은 문자열 사용

데이터 설정

'데이터 형식'까지 정의가 되었다면 이제 데이터를 설정해야 합니다. 데이터는 '키-값' 형태로 설정할 수 있으며, '+ADD' 버튼을 통해 여러개의 데이터를 설정할 수 있습니다.

데이터설정

  1. '+ADD' 버튼을 클릭하여 데이터 입력 항목을 추가합니다.
    드롭다운 메뉴를 클릭하면 선택 가능한 항목이 표시됩니다.

  2. 데이터 입력을 위한 추가적인 입력 항목이 표시됩니다.

  3. 추가 속성 입력부분에 키값을 입력합니다.

  4. 값 입력시 3가지 타입이 있습니다. 원하는 항목을 선택합니다.

  5. 추가적으로 다른 형식으로 값을 입력하시려면 드롭다운 메뉴을 선택합니다.

  6. 아래와 같은 3가지 타입을 선택할 수 있습니다.

  • Single-Line
  • Multi-Line(Folded block, >-)
  • Multi-Line(Literal block, |-)
  1. 타입 선택 후 선택한 타입에 맞게 값 항목에 원하는 내용을 입력합니다.

ConfigMap의 경우, 컨테이너가 시작될때 해당 값을 참조합니다.
ConfigMap이 정상적으로 설정되지 않으면 ConfigMap을 주입하고자 하는 대상 컨테이너가 시작 중 'Pending' 상태로 될 수 있습니다.

Block-scalar 란?

Yaml 형식의 파일에 대한 Block Scalar 방식은 여기를 참고하세요.