[CKA] ConfigMap 구성

ConfigMap 구성의 핵심 개념과 구성 방법, 실습 풀이를 정리합니다.

파드의 정의 파일이 많고 관리할 환경 변수가 많아진다면 해당 값들을 관리하는데 어려움이 발생합니다. ConfigMap을 사용하면 파드 정의 파일에서 해당 정보를 갖고올 수 있으므로, 중앙에서 관리가 가능합니다.
ConfigMap은 쿠버네티스 Key-Value쌍 구성 데이터를 전달하는데 사용됩니다.

Create ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: demo-config
data:
  DEMO_GREETING: "Hello from ConfigMap"
  DEMO_FAREWELL: "Goodbye from ConfigMap"
kubectl get configmaps

ConfigMap in Pods

환경 변수를 삽입하기 위해선 envFrom을 추가하며 하위 항목은 list로 구성됩니다.
목록의 각 항목은 ConfigMapRef를 통해 생성된 ConfigMap name을 참조합니다.

apiVersion: v1
kind: Pod
metadata:
  name: env-demo-pod
spec:
  containers:
  - name: env-demo-container
    image: nginx
    envFrom:
    - configMapRef:
        name: demo-config

잘 모를때는 공식문서를 항상 체크하는게 좋다.

configmap 생성하기
--from-literal=key=value

kubectl create configmap webapp-config-map --from-literal=APP_COLOR=darkblue --from-literal=APP_OTHER=disregard

공식문서에서 확인되는 configmap 적용 방법

# 기존 구성
env:
  - name: APP_COLOR
    value: green

ConfigMap의 특정 키를 참조하도록 같은 환경 변수 항목을 다음과 같이 바꿉니다.

# 이때 env key 값은 안바꾸고 수정해야합니다.
env:
  - name: APP_COLOR
    valueFrom:
      configMapKeyRef:
        name: webapp-config-map
        key: APP_COLOR