본문 바로가기
INFRA/DevOps

[K8S] ConfigMap

by BTC_민물공원 2023. 12. 8.

베하~! BTC_녹차공원 팀의 민물공원 입니다.

이번주는 ConfigMap에 대해 알아보겠습니다!

 

ConfigMap


컨피그맵(configmap)은 컨테이너에서 필요한 환경설정 내용을 컨테이너와 분리해서 제공해 주기 위한 기능입니다. 개발용과 운영용에서는 서로 다른 설정이 필요한 경우가 많습니다. 이렇게 다른 설정을 가지고 실행을 해야할때 사용하는 것이 컨피그맵입니다. 컨피그맵을 컨테이너와 분리해 둠으로써 하나의 동일한 컨테이너를 가지고 개발용, 스테이지용, 운영용으로 모두 사용하는 것이 가능해 집니다.
컨피그맵의 내용을 컨테이너의 환경변수로 주는 것뿐만 아니라 다른 방식으로 사용할수도 있습니다. 볼륨형식으로 컨테이너에 붙여서 파일로 컨테이너에 제공해 주는게 가능합니다.
config-volume라는 볼륨을 만들어서 config-dev의 내용을 컨테이너의 /etc/config디렉토리에 각 데이터 키를 이름으로가지는 파일을 만들어서 넣어줍니다.
실습을 통해 더 자세하게 알아보겠습니다.

 

ConfigMap 실습


이번 실습도 KillerCoda 에서 따라해보아요.

https://killercoda.com/ 

 

Killercoda Interactive Environments

Learn DevOps Linux Kubernetes CKS CKA CKAD Git Cassandra etc | Katacoda compatible

killercoda.com

 

ConfigMap 을 생성하여 Pod 볼륨에 마운트시켜보는 실습을 진행해보아요.

 

먼저 sepcial-config 라는 이름을 가진 ConfigMap 에 special.how: very 라는 변수를 저장해놓습니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  special.how: very

 

그 다음, dapi-test-pod 를 생성하여 생성한 ConfigMap 을 mount 시켜줍니다.

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: nginx
      command: [ "/bin/sh", "-c", "ls /etc/config/" ]
      volumeMounts:
      - name: config-volume
        mountPath: /etc/config
  volumes:
    - name: config-volume
      configMap:
        # Provide the name of the ConfigMap containing the files you want
        # to add to the container
        name: special-config
  restartPolicy: Always

 

생성된 pod 의 log 를 확인해봅니다.

kubectl logs dapi-test-pod

 

 

ConfigMap 적용이 정상적으로 되었음을 확인할수 있습니다.

 

이렇게 오늘은 ConfigMap 에 대해 알아보았는데요.

다음번에는 더 흥미로운 주제로 찾아뵙겠습니다.

 

이상 BTC_녹차공원 팀이였습니다!

베빠~!

 

'INFRA > DevOps' 카테고리의 다른 글

[DevOps] Log4j 보안취약점 및 해결 방법  (0) 2023.12.29
[DevOps] Log4j 란?  (1) 2023.12.29
[DevOps] Django  (0) 2023.12.07
AWS Chatbot을 이용한 ChatOps 모니터링  (0) 2023.12.04
[K8S] CronJob  (1) 2023.11.25

댓글