4.6. ConfigMaps (구성 맵)
개요
ConfigMaps 페이지는 MCM 컨트롤 플레인에서 관리하는 모든 ConfigMap을 통합적으로 관리하는 페이지입니다. ConfigMap은 컨테이너화된 애플리케이션에 필요한 설정 데이터를 키-값 쌍으로 저장하는 Kubernetes 리소스입니다.
주요 목적:
- 멀티클러스터 ConfigMap 통합 관리
- 애플리케이션 설정의 중앙 집중식 관리
- 환경별 설정 분리 및 관리
- PropagationPolicy를 통한 설정 배포
ConfigMap 사용 사례:
- 애플리케이션 설정 파일 (application.properties, config.yaml)
- 환경 변수 값 저장
- 명령줄 인수 설정
- 설정 파일 마운트 (nginx.conf, redis.conf 등)
- 기능 플래그 및 런타임 설정
화면 구성
ConfigMaps 페이지는 테이블 형태로 ConfigMap 목록을 표시합니다.

페이지 상단 요소
| 요소 | 설명 |
|---|---|
| 네임스페이스 필터 | 특정 네임스페이스의 ConfigMap만 표시 |
| 시스템 네임스페이스 포함 | 시스템 네임스페이스(kube-system 등)의 ConfigMap 표시 토글 |
| 새로고침 버튼 | ConfigMap 목록 갱신 |
| 생성 버튼 | 새 ConfigMap 생성 다이얼로그 열기 |
| 검색창 | ConfigMap 이름으로 검색 |
테이블 컬럼
| 컬럼 | 설명 | 정렬 |
|---|---|---|
| 이름 | ConfigMap 이름 | ✅ |
| 네임스페이스 | ConfigMap이 속한 네임스페이스 | ✅ |
| 키 | 저장된 데이터 키 목록 (3개 초과 시 "+N개 더 보기" 표시) | ✅ |
| 경과시간 | ConfigMap 생성 후 경과 시간 | ✅ |
| 작업 | 편집/삭제 버튼 | - |
키 표시
키 컬럼은 ConfigMap에 저장된 데이터 키를 표시합니다:
- 처음 2-3개 키를 배지 형태로 표시
- 키가 많은 경우 "+N개 더 보기" 형태로 축약 표시
- 예:
config.properties,key1,+2개 더 보기
ConfigMap 상세 정보
ConfigMap 행을 클릭하면 상세 정보 패널이 열립니다.

상세 패널 헤더
| 요소 | 설명 |
|---|---|
| ConfigMap 이름 | 선택한 ConfigMap 이름 |
| 네임스페이스 | ConfigMap이 속한 네임스페이스 |
| 키 수 | 저장된 데이터 키 개수 (예: 4 키) |
액션 버튼
| 버튼 | 기능 |
|---|---|
| 새로 고침 | ConfigMap 정보 갱신 |
| 편집 | YAML 편집 모드 |
| 삭제 | ConfigMap 삭제 |
탭 메뉴
개요 탭
ConfigMap의 기본 정보와 데이터 내용을 표시합니다.
기본 정보:
| 항목 | 설명 |
|---|---|
| 이름 | ConfigMap 이름 |
| 네임스페이스 | ConfigMap이 속한 네임스페이스 |
| 키 | 저장된 데이터 키 개수 |
| 경과시간 | 생성 후 경과 시간 |
| 생성일 | ConfigMap 생성 일시 |
데이터:
각 데이터 키를 아코디언 형태로 표시합니다:

| 요소 | 설명 |
|---|---|
| 키 이름 | 데이터 키 이름 (예: config.properties) |
| 데이터 크기 | 값의 문자 수 (예: 34 자) |
| 확장/축소 | 클릭하여 데이터 내용 표시/숨김 |
| 복사 버튼 | 데이터 내용을 클립보드에 복사 |
키를 클릭하면 해당 데이터의 내용이 확장되어 표시 됩니다.
멀티클러스터 정책 탭
ConfigMap에 적용된 멀티 클러스터 정책 정보를 표시합니다.

전파 정책 (PropagationPolicy):
| 컬럼 | 설명 |
|---|---|
| 이름 | PropagationPolicy 이름 |
| 네임스페이스 | 정책이 속한 네임스페이스 |
| 범위 | 네임스페이스 범위 정책 / 클러스터 범위 정책 |
| 대상 클러스터 | 타겟 클러스터 목록 |
오버라이드 정책 (OverridePolicy):
클러스터별 커스텀 설정이 있는 경우 표시됩니다.
레이블 탭
ConfigMap에 적용된 Kubernetes 레이블 목록을 표시합니다.
어노테이션 탭
ConfigMap에 적용된 어노테이션 목록을 표시합니다.
이벤트 탭
ConfigMap 관련 Kubernetes 이벤트를 표시합니다.
ConfigMap 생성
새로운 ConfigMap을 MCM 컨트롤 플레인에 생성합니다.
입력 항목
| 항목 | 필수 | 설명 |
|---|---|---|
| 이름 | ✅ | ConfigMap 이름 |
| 네임스페이스 | ✅ | 배포할 네임스페이스 |
| 데이터 | ✅ | 키-값 쌍 데이터 |
데이터 입력 방식
폼 기반 입력:
- 키-값 쌍을 개별적으로 입력
- 키: 데이터 키 이름 (예: database.host)
- 값: 데이터 값 (예: localhost)
- 추가 버튼으로 여러 키-값 쌍 입력
YAML 편집:
- "YAML 편집" 탭에서 ConfigMap 정의를 직접 작성
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
namespace: default
data:
database.host: localhost
database.port: "5432"
config.properties: |
property1=value1
property2=value2
ConfigMap 작업
ConfigMap 편집
- ConfigMap 선택
- 상세 패널에서 "편집" 버튼 클릭
- YAML 에디터에서 ConfigMap 정의 수정
- "저장" 버튼 클릭
참고: ConfigMap을 수정해도 이미 실행 중인 파드에는 즉시 반영되지 않습니다. 변경 사항을 적용하려면 파드를 재시작해야 합니다.
ConfigMap 삭제
⚠️ 주의: ConfigMap을 삭제하면 이를 참조하는 파드에서 오류가 발생할 수 있습니다. 삭제 전 참조 여부를 확인하세요.
- 삭제할 ConfigMap 선택
- 상세 패널에서 "삭제" 버튼 클릭
- 확인 다이얼로그에서 ConfigMap 이름 입력
- "삭제" 버튼 클릭
사용 예시
시나리오 1: 애플리케이션 설정 ConfigMap 생성
- "생성" 버튼 클릭
- ConfigMap 정보 입력:
- 이름:
app-config - 네임스페이스:
production - 데이터:
database.host:db.example.comdatabase.port:5432log.level:INFO
- 이름:
- "생성" 버튼 클릭
- PropagationPolicy로 타겟 클러스터 지정
- 애플리케이션 Deployment에서 ConfigMap 참조
시나리오 2: 설정 파일 ConfigMap 생성
- "생성" 버튼 클릭 → YAML 편집 탭 선택
- 다음 YAML 작성:
apiVersion: v1kind: ConfigMapmetadata:name: nginx-confignamespace: webdata:nginx.conf: |server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;}}
- "생성" 버튼 클릭
- Deployment에서 볼륨으로 마운트
시나리오 3: ConfigMap 데이터 확인
- ConfigMap 목록에서 확인할 ConfigMap 클릭
- 개요 탭에서 데이터 섹션 확인
- 확인할 키를 클릭하여 확장
- 데이터 내용 확인
- 필요시 복사 버튼으로 클립보드에 복사
시나리오 4: 멀티클러스터 ConfigMap 배포
- ConfigMap 생성
- PropagationPolicy 생성:
- 리소스 셀렉터: ConfigMap 지정
- 타겟 클러스터: 배포할 클러스터 선택
- 상세 패널에서 "멀티클러스터 정책" 탭 확인
- 대상 클러스터에 ConfigMap이 배포되었는지 확인
시나리오 5: 환경별 설정 관리
- 개발 환경용 ConfigMap 생성:
- 이름:
app-config - 네임스페이스:
dev - 데이터: 개발 환경 설정
- 이름:
- 운영 환경용 ConfigMap 생성:
- 이름:
app-config - 네임스페이스:
prod - 데이터: 운영 환경 설정
- 이름:
- 각 네임스페이스별로 PropagationPolicy 적용
- 동일한 애플리케이션이 환경에 따라 다른 설정 사용
관련 개념
ConfigMap vs Secret
| 특성 | ConfigMap | Secret |
|---|---|---|
| 용도 | 일반 설정 데이터 | 민감한 데이터 (비밀번호, 토큰) |
| 저장 방식 | 평문 저장 | Base64 인코딩 저장 |
| 보안 | 일반 보안 | 접근 제한 및 암호화 옵션 |
| 크기 제한 | 1MB | 1MB |
| 사용 예 | 설정 파일, 환경 변수 | 비밀번호, API 키, 인증서 |
ConfigMap 사용 방법
1. 환경 변수로 주입:
env:
- name: DATABASE_HOST
valueFrom:
configMapKeyRef:
name: app-config
key: database.host
2. 전체 ConfigMap을 환경 변수로:
envFrom:
- configMapRef:
name: app-config
3. 볼륨으로 마운트:
volumes:
- name: config-volume
configMap:
name: app-config
volumeMounts:
- name: config-volume
mountPath: /etc/config
멀티클러스터 ConfigMap 관리
MCM를 통해 ConfigMap을 멀티클러스터에 배포할 때:
PropagationPolicy:
- 동일한 ConfigMap을 여러 클러스터에 복제
- 클러스터 선택 및 배포 전략 설정
OverridePolicy:
- 클러스터별로 다른 설정값 적용
- 환경별 설정 차이 관리
예: 클러스터별 다른 데이터베이스 호스트 설정
ConfigMap 업데이트 전략
ConfigMap을 수정할 때 주의사항:
- 즉시 반영 안 됨: 이미 실행 중인 파드는 ConfigMap 수정 시 즉시 업데이트되지 않음
- 볼륨 마운트: 볼륨으로 마운트된 경우 일정 시간 후 자동 업데이트 (기본 60초)
- 환경 변수: 환경 변수로 주입된 경우 파드 재시작 필요
- 롤링 업데이트: Deployment 재시작으로 새 설정 적용
# Deployment 롤링 재시작
kubectl rollout restart deployment/my-app -n namespace
다음 단계
- Secrets (시크릿) - 멀티클러스터 Secret 관리
- Deployments (배포) - ConfigMap을 사용하는 Deployment 관리
- Propagation Policies (배포 정책) - PropagationPolicy 설정