728x90
[K8s] 컨피그 맵(Config map)
컨피그맵은 컨테이너에 필요한 환경 설정을 컨테이너와 분리해서 제공하는 기능이다.
Cloud Native Architecture에서 컨테이너는 변하지 않는 자원이여야 한다.
그러나 개발용과 상용 서비스는 서로 다른 설정이 필요할 때가 많은데
이렇게 다른 설정으로 컨테이너를 실행해야 할 때 사용하는 것이 컨피그맵이다.
컨피그맵 사용
config-dev.yaml
.data 하위 필드로 환경 설정 값을 넣는다.
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
kubectl describe configmap
이러한 컨피그맵을 컨테이너에서 불러와서 사용하는 방법을 알아보자
컨피그맵 설정 중 일부만 불러와서 사용
deployment-config01.yaml
config-dev라는 이름의 컨피그맵에서 DEBUG_INFO 필드만 불러와서 사용한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
matadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: nginx:latest
ports:
- containerPort: 8080
env:
- name: DEBUG_LEVEL
valueFrom:
configMapKeyRef:
name: config-dev
key: DEBUG_INFO
컨피그맵 설정 전체를 불러와서 사용
deployment-config02.yaml
컨피그맵 설정 전체를 한꺼번에 컨테이너의 환경 변수로 설정한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
matadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: nginx:latest
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: config-dev
컨피그맵을 볼륨에 불러와서 사용
deployment-config03.yaml
컨테이너의 볼륨형식으로 컨피그맵을 설정해서 파일로 컨테이너에 제공한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: configapp
labels:
app: configapp
spec:
replicas: 1
selector:
matchLabels:
app: configapp
template:
matadata:
labels:
app: configapp
spec:
containers:
- name: testapp
image: nginx:latest
ports:
- containerPort: 8080
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: config-dev
반응형
'🐳 Container > K8S' 카테고리의 다른 글
[K8s] Probe (Liveness, Readiness, Startup) (0) | 2024.01.15 |
---|---|
[Minikube] Windows에 Minikube 설치 (0) | 2023.08.24 |
[K8s] NodePort VS LoadBalancer VS Ingress (0) | 2023.07.17 |
[K8s] helm chart를 이용하여 GKE에 jenkins 설치 (0) | 2023.07.13 |
[K8s] Helm (0) | 2023.06.25 |