[따배쿠] 14. ConfigMap

( 참고 : 따배쿠 https://www.youtube.com/watch?v=6n5obRKsCRQ&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c )


Contents

  1. ConfigMap 생성
  2. ConfigMap의 일부분을 적용하기
  3. ConfigMap 전체를 적용하기
  4. ConfigMap을 볼륨으로 적용하기


ConfigMap

  • pod 안에는 여러 개의 container들이 들어 있다
  • 각각의 container는 다양한 구성/역할을 가진다
  • 이러한 정보들을 한 군데에 모아서 관리하는 파일을 ConfigMap이라고 한다.


1. ConfigMap 생성

ConfigMap : container 구성 정보를 한 곳에서 통합하여 관리하는 파일

figure2


우선 ConfigMap을 생성한 뒤, 특정 container들에게 정보를 전달해준다.


kubectl create configmap NAME [--from-file=source] [--from-literal=key1=value1]

figure2


방법 1) CLI에서 직접 명령어로 key&value 지정하기

  • kubectl create configmap CONFIG_NAME --from-literal=id=b2021002 --from-literal=class=bigdata


방법 2) 파일 자체를 사용하여

  • kubectl create configmap CONFIG_NAME --from-file=text.file

  • ex) text.file

    • cat > text.file … “This is a file” 작성 후 저장

    • 그러면,

      • key : text.file
      • value : “This is a file”

      이 담기게 된다


방법 3) 파일 자체를 사용하여 (2)

  • kubectl create configmap CONFIG_NAME --from-file=mydata=text.file
  • key & value
    • key : mydata
    • value : text.file 안의 내용


방법 4) 경로를 사용하여

  • kubectl create configmap CONFIG_NAME --from-file=/configmap.dir/

  • 특정 directory 안에, xxxxx.conf 파일이 있으면,

    해당 내용이 파일명이 key로, 안에 내용이 value로 담기게 된다


Example

figure2


2. ConfigMap의 일부분을 적용하기

생성한 configmap의 key를 “pod의 컨테이너에 적용”


pod의 yaml 파일을 직접 수정할 필요 없이, configmap을 사용하여 여러 container를 동시에 적용할 수 있다!

figure2


example

kubectl apply -f genid.yaml

  • pod 생성
  • 작동 방식 (A)


kubectl edit configmaps ttabe-config

  • 작동 방식 수정 (A->B)


kubectl apply -f genid.yaml

  • pod 생성
  • 작동 방식 (B)


3. ConfigMap 전체를 적용하기

생성한 configmap의 전체 key를 “pod의 컨테이너에 적용”

figure2


4. ConfigMap을 볼륨으로 적용하기

생성한 configmap의 key를 “pod의 컨테이너에 볼륨 마운트”

figure2