포스팅 목차
1. configMap 이란?
- 쿠버네티스의 기본 오브젝트로 구성 데이터를 저장하는 key/value 쌍의 집합
- pod 에 파일을 생성하거나 pod의 환경 변수에 추가하는 방식으로 데이터를 제공할 수 있다.
2. configMap 생성
예시) config.yaml 파일을 configMap으로 생성 해보자.
1) 필요한 설정인 config.yaml 내용이 아래와 같다고 하자.
autoSaveInterval: 60
batchSize: 128
protocols:
- http
- https
2) 직접 yaml 파일을 생성하여 실행하는 방법
$ vi create_config.yaml
apiVersion: v1
data:
config.yaml: |
autoSaveInterval: 60
batchSize: 128
protocols:
- http
- https
kind: ConfigMap
metadata:
name: demo-config
namespace :demo
3) config.yaml 파일을 가지고 kubectl 명령을 활용하여 생성
$ kubectl create configmap demo-config --namespace=demo --from-file=config.yaml
4) 생성된 configMap을 매니페스트 파일로 export
$ kubectl get configmap/demo-config --namespace=demo --export -o yaml. > demo-config.yaml
3. confinMap을 활용하여 환경변수 설정
1) 사용할 configMap 생성
$ vi demo_config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-config
data:
greeting: Hola
$ kubectl create -f demo_config.yaml
2) deployment spec에 추가 수정
$ vi demo.yaml
spec:
containers:
- name: demo
image: cloudnatived/demo:hello-config-env
ports:
- containerPort: 8888
env:
- name: GREETING
valueFrom:
configMapKeyRef:
name: demo-config
key: greeting
3) 해당 deployment 와 port-forward 한 후 확인
$ kubectl apply -f demo.yaml
$ kubectl port-forward deply/demo 9999:8888
http://localhost:9999로 접속하여 확인한다.
4. configMap에서 전체 환경 변수 가져오기