컨테이너에 필요한 환경 설정을 컨테이너와 분리해서 제공하는 기능
다른 설정으로 컨테이너를 실행해야 할 때 사용
config-dev.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: config-dev
namespace: default
data:
DB_URL: localhost
DB_USER: myuser
DB_PASS: mypass
DEBUG_INFO: debug
$ kubectl apply -f config-dev.yaml
deployment-config01.yaml
piVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
metadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: arisu1000/simple-container-app:latest
ports:
- containerPort: 8080
env:
- name: DEBUG_LEVEL # 이름 설정
valueFrom:
configMapKeyRef:
name: config-dev # 어떤 콘피그 맵에서
key: DEBUG_INFO # 어떤 값을 가져올지
---
apiVersion: v1
kind: Service
metadata:
labels:
app: configapp
name: configapp-svc
namespace: default
spec:
ports:
- nodePort: 30800
port: 8080
protocol: TCP
targetPort: 8080
selector:
app: configapp
type: NodePort
deployment-config02.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
metadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: arisu1000/simple-container-app:latest
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: config-dev # 컨피그맵 -> config-prod로 변경
envFrom을 사용
configMap 2 생성 후 deployment yaml code를 map2와 연결