key : value 구조의 환경변수 데이터
아래의 두 단계에 거쳐서 환경변수를 관리할 수 있음
configmap 생성 방법 2가지
1) imperative
직접 key value 입력하여 생성 → 시험에서 빠르게 사용 가능
kubectl create configmap {cm이름} --from-literal={key}={value} --from-literal={key}={value} ...
파일로 생성
kubectl create configmap {cm이름} --from-file={file}
2) declarative
kubectl create -f {file}
configMap definition 예시
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_COLOR: blue
APP_MODE: prod
configmap 확인 방법
kubectl get configmap / cm
kubectl describe configmap / cm
2가지 방법
1) 미리 생성한 configmap의 이름을 pod definition 파일에서 사용하는 방법
configmap 1개 전체 가져올 때
apiVersion: v1
kind: Pod
metadata:
name: configmap-demo-pod
spec:
containers:
- name: demo
image: alpine
command: ["sleep", "3600"]
envFrom:
- configMapRef:
name: config-map-name
configmap 중 특정 환경 변수 1개만 가져올 때
apiVersion: v1
kind: Pod
metadata:
name: configmap-demo-pod
spec:
containers:
- name: demo
image: alpine
command: ["sleep", "3600"]
env:
- name: UI_PROPERTIES_FILE_NAME
valueFrom:
configMapKeyRef:
name: game-demo
key: ui_properties_file_name
2) volume 에 넣는 방법
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mypod
image: redis
volumeMounts:
- name: foo
mountPath: "/etc/foo"
readOnly: true
volumes:
- name: app-config-volume
configMap:
name: app-config