Kubernetes/Udemy - CKAD with Tests

ConfigMaps

비번변경 2021. 7. 8. 19:08

2021.07.08 - 환경 변수 설정에서는 포드 정의 파일에서 환경변수를 정의하는 방법을 알아보았다. 하지만 포드 정의 파일로 환경 변수를 정의하면 포드 정의 파일이 많아지면 환경변수를 관리하기가 어려워진다. 이런 어려움을 해결하기 위해 ConfigMap을 사용할 수 있다.

 

ConfigMap

키-값 형태로 구성되며, Pod 생성 시 ConfigMap을 주입하여 Pod 컨테이너 내부에 호스팅 되는 애플리케이션의 환경 변수로 사용할 수 있도록 데이터 전달에 사용한다.

 

생성 방법

  • 명령형 방법으로 생성
kubectl create configmap <config-name> --from-literal=<key>=<value> --from-literal=<key>=<value>
# –from-literal : 키 값 쌍 지정에 사용

kubectl create configmap <config-name> --from-file=<path-to-file>
# -from-file : 필요한 데이터 경로 지정
  • 정의 파일을 이용하여 생성
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_COLOR: blue
  APP_MODE: prod

kind에 ConfigMap를 지정하여 정의 파일을 작성한 뒤, 아래의 create 명령으로 생성한다.

kubectl create –f config-map.yaml

 

ConfigMap 확인

# 목록 조회
kubectl get configmaps

# 특정 configMap 상세 확인
kubectl describe configmaps

 

ConfigMap 주입

pod 정의 파일에 envFrom 속성을 추가하여 환경변수를 전달할 수 있다.

apiVersion: v1
kind: Pod
metadata:
  name: simple-webapp-color
  labels:
    name: simple-webapp-color
spec:
  containers:
  - name: simple-webapp-color
    image: simple-webapp-color
    ports:
    - containerPort: 8080
    envFrom:
    - configMapRef:
        name: app-config

envFrom 속성은 list이기 때문에 많은 환경변수를 전달할 수 있으며, list의 각 항목이 configMap에 해당한다.