ConfigMap
Configuration + Map (키, 밸류)
- Pod의 상태와 상관없이 독립적으로 정보를 관리
리터럴 방식
- key=value를 직접 커맨드라인에 작성하는 방법
kubectl create configmap <name> --from-literal=key=value
파일 방식
kubectl create configmap <name> --from-file=<filepath>
configMap 형태
apiVersion: v1
data:
MESSAGE: Hello
STUDENT_NAME: SIMON
kind: ConfigMap
metadata:
name: greeting-config
namespace: default
ConfigMap을 참조하여 환경변수 설정
개별로 설정
spec:
containers:
env:
- name: STUDENT_NAME # 환경변수 Key
valueFrom: # Value
configMapKeyRef:
name: greeting-config # configMap 이름
key: STUDENT_NAME # configMap key
- name: MESSAGE
valueFrom:
configMapKeyRef:
name: greeting-config
key: MESSAGE
- name: GREETING
value: $(MESSAGE)!$(STUDENT_NAME)
한번에 설정
spec:
containers:
envFrom:
- confiMapRef:
name: greeting-config # ConfigMap 이름
env:
- name: GREETING
value: $(MESSAGE)!$(STUDENT_NAME)
ConfigMap 타입의 볼륨을 Pod에 선언하는 방법
spec:
volumes: # Pod에서 사용할 볼륨 목록 선언
- name: app-config # 컨테이너에서 참조할 볼륨 이름
configMap:
name: nginx-config # 참조할 ConfigMap 이름
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
volumeMounts: # 컨테이너에서 Pod 볼륨 마운트 선언
- name: app-config # 마운팅할 Pod 볼륨 이름
mountPath: /etc/nginx/conf.d # 컨테이너 안에서 마운팅할 경로