728x90
ConfigMap과 Secret은 환경설정 데이터를 관리하기 위한 리소스이다. 애플리케이션에서 환경변수나 설정파일처럼 사용할 수 있는 키-값 쌍을 저장한다. 컨테이너 이미지와 설정 데이터가 분리되어 있어 배포 시 유연성을 높여준다.
ConfigMap 생성
# 리터럴 데이터로 생성
kubectl create configmap [config name] --from-literal=[key]=[value]
kubectl create configmap app-config --from-literal=APP_COLOR=blue --from-literal=APP_MODE=prod
# 파일로 생성
kubectl create configmap [config name] --from-file=[file path]
kubectl create configmap app-config --from-file=config-map.yaml
# yaml 파일로 생성
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_COLOR: blue
APP_MODE: prod
kubectl create -f config-map.yaml
활용 예시 - 환경변수로 ConfigMap 참조
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: registry.k8s.io/busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: APP_COLOR
valueFrom:
configMapKeyRef:
name: app-config
key: APP_COLOR # ConfigMap의 특정 키 참조
envFrom:
- configMapRef:
name: special-config # ConfigMap의 데이터 전부 참조
활용 예시 - ConfigMap 데이터를 컨테이너 파일시스템의 특정 경로에 파일로 저장
apiVersion: v1
kind: Pod
metadata:
name: simple-webapp-color
spec:
containers:
- name: simple-webapp-color
image: simple-webapp-color
volumeMounts:
- name: config-volume
mountPath: /etc/config # 컨테이너 내 /etc/config 경로에 ConfigMap 데이터가 파일 형태로 저장됨
volumes:
- name: config-volume
configMap:
name: app-config # 참조할 ConfigMap 이름
- 환경변수 (env or envFrom): ConfigMap 데이터를 직접 컨테이너 환경변수로 설정.
- 환경변수는 단순한 설정값을 전달할 때 사용.
- 마운트 (volume + volumeMount): ConfigMap 데이터를 컨테이너 파일 시스템의 특정 경로에 파일로 저장.
- 마운트는 복잡한 설정 파일이나, 파일 형태로 읽어야 하는 설정 데이터를 전달할 때 사용.
728x90
반응형
'데브옵스 > Orchestration' 카테고리의 다른 글
[Kubernetes] 28. Secret (0) | 2024.12.05 |
---|---|
[Kubernetes] CKA 취득 성공 (3) | 2024.11.28 |
[Kubernetes] 26. Environment Variables (0) | 2024.11.21 |
[Kubernetes] 25. Command, Arguments + Dockerfile (0) | 2024.11.15 |
[Kubernetes] 24. Rolling Update, Rollback (0) | 2024.11.14 |